我在更新面板中有一个图像控件,在页面加载中我正在设置它的 url。
page_load 中的代码
2 | Image1.ImageUrl = url; |
在 aspx 中的更新面板内
我在更新面板中也有几个提交按钮,我正在更新按钮点击时的一些 texboxes 和标签。
但是这会导致整个页面刷新。 (滚动条上升。)
如果将图像移到更新面板之外,则不会发生这种情况。
问题是如果我删除更新面板之外的图像,布局根本不起作用。
谁能帮我这个?谢谢。
更新
我意识到这只发生在 Chrome 中。有人有想法吗?
更新 2
在那个页面上,我通过从更新面板中删除 img 解决了这个问题。让布局工作简直是地狱,但它奏效了。
但是我有另一个页面,当用户单击加载更多时,我将在更新面板中添加新的 imgs。同样的交易,显然这次我不能将图像移出更新面板。这是代码。
2 3 4 5 6 7 8 9 10 11 12 13 | <!--Recent Uploads--> Uploads <Triggers> </Triggers> <ContentTemplate> </ContentTemplate> </asp:UpdatePanel> |
后面的代码(上传索引是一个会话变量)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | for (int i = 0; i < upload_index; i++) { try { SSImage img = images[i]; HyperLink imglink = new HyperLink(); imglink.NavigateUrl ="/Image.aspx?id=" + img.id; imglink.ImageUrl ="/ShowImage.ashx?imgid=" + img.id; imglink.ToolTip = img.title; imglink.CssClass ="imgupload"; Control contentpanel = RecentUpload.ContentTemplateContainer; contentpanel.Controls.AddAt(contentpanel.Controls.Count - 2, imglink); } catch (ArgumentOutOfRangeException) { loaduploads.Visible = false; break; } } |
更新 3
问题不会发生在静态图像上,而是在我尝试从
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | using System; using System.Web; using System.IO; using System.Data; using System.Data.SqlClient; using System.Configuration; public class ShowImage : IHttpHandler { public void ProcessRequest(HttpContext context) { SqlDataReader rdr = null; SqlConnection conn = new SqlConnection(); SqlCommand cmd = new SqlCommand(); try { string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; conn = new SqlConnection(connStr); cmd = new SqlCommand("SELECT Image_data FROM [Image_table] WHERE Image_id =" + context.Request.QueryString["imgID"], conn); conn.Open(); Object result = cmd.ExecuteScalar(); //if nothing found throw exception if (result == null) { throw new Exception(); } rdr = cmd.ExecuteReader(); while (rdr.Read()) { context.Response.ContentType ="image/jpg"; context.Response.BinaryWrite((byte[])rdr["Image_data"]); } if (rdr != null) rdr.Close(); } catch { } finally { conn.Close(); conn.Dispose(); } } public bool IsReusable { get { return false; } } } |
您应该使用更新面板的异步回发触发器
这是一个例子:
其中 'controlID' 是可以导致回发的元素的 ID,而 'eventname' 是由定义的控件触发以导致回发的特定事件
在我看来,
You should try to add controls to the body instead of updating the
ContentTemplate of theUpdatePanel i.e. Create aPanel control in ContentTemplate and add everything in that and update anything in thatPanel not theContentTemplate .
检查逻辑和 aspx 语法,显示将控件添加到
中包含的
ASPX
2 3 4 5 6 7 8 9 | </Triggers> <ContentTemplate> </asp:Panel> </ContentTemplate> </asp:UpdatePanel> |
代码背后
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | for (int i = 0; i < upload_index; i++) { try { SSImage img = images[i]; HyperLink imglink = new HyperLink(); imglink.NavigateUrl ="/Image.aspx?id=" + img.id; imglink.ImageUrl ="/ShowImage.ashx?imgid=" + img.id; imglink.ToolTip = img.title; imglink.CssClass ="imgupload"; // Commented old code //Control contentpanel = RecentUpload.ContentTemplateContainer; //contentpanel.Controls.AddAt(contentpanel.Controls.Count - 2, imglink); //Add controls to Panel instead of updating the ContentTemplate itself pnlMyDynamicContent.Controls.AddAt(pnlMyDynamicContent.Controls.Count - 2, imglink); } catch (ArgumentOutOfRangeException) { loaduploads.Visible = false; break; } } |
添加另一个更新面板并将您的图像标签放入此更新面板,然后将属性"updatemode"设置为"always"。
试试这个,它肯定会解决你的问题。如果不让我知道。
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
我目前正在用Ruby编写一个项目,它使用ActiveRecordgem进行数据库交互,我正在尝试使用ActiveRecord::Base.logger记录所有数据库事件具有以下代码的属性ActiveRecord::Base.logger=Logger.new(File.open('logs/database.log','a'))这适用于迁移等(出于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时脚本失败并出现以下错误/System/Library/Frameworks/Ruby.frame
require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie
我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是
我在我的rails应用程序中安装了来自github.com的acts_as_versioned插件,但有一段代码我不完全理解,我希望有人能帮我解决这个问题class_eval我知道block内的方法(或任何它是什么)被定义为类内的实例方法,但我在插件的任何地方都找不到定义为常量的CLASS_METHODS,而且我也不确定是什么here,并且有问题的代码从lib/acts_as_versioned.rb的第199行开始。如果有人愿意告诉我这里的内幕,我将不胜感激。谢谢-C 最佳答案 这是一个异端。http://en.wikipedia
我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?我现在有这段代码pdf.transactiondopdf.table@data,:font_size=>12,:border_style=>:grid,:horizontal_padding=>10,:vertical_padding=>3,:border_width=>2,:position=>:left,:row_colors=>["FFFFFF","DDDDDD"]pdf.
据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b
下面的代码工作正常:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson)do|key,oldv,newv|ifkey==:aoldvelsifkey==:bnewvelsekeyendendputskerson.inspect但是如果我在“ifblock”中添加return,我会得到一个错误:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson