UpdatePanel刷新<input type ="image">但不是type ="按钮

hkf*_*hkf 1 html asp.net updatepanel

我的ASP.NET应用程序中有一个UpdatePanel控件(实际上有几个,但这不是问题).

<asp:UpdatePanel ID="UpdatePanelDetail" runat="server" UpdateMode="Conditional">
<ContentTemplate>
...More code here
Run Code Online (Sandbox Code Playgroud)

在面板内部,存在一个asp:Table对象:

<asp:Table ID="tblGIFs" runat="server"></asp:table>
Run Code Online (Sandbox Code Playgroud)

该表通过代码隐藏中的一些代码以编程方式生成:

TableRow htr = new TableRow();
TableCell htc = new TableCell();
...<snip>
tblGIFs.Rows.Add(htr)
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了我试图添加一个按钮(带图像)的其中一个单元格:

htc3.Text = "<input ID=\""+ii.Value+"\" OnClick = \"btnGIFSearch(this)\" type=\"image\" value=\"/Image/Fiu.png\" />";
Run Code Online (Sandbox Code Playgroud)

单击此图像时,onclick会点亮,但整个UpdatePanel会刷新(随后会asp:Table消失).

如果我使用a type="button",它可以正常工作,刷新/丢失表中的内容没有问题.

我在每个位置运行带有断点的页面,我从代码隐藏到触摸表无效,我真的没有什么可以看到可能导致程序UpdatePanel清除.

有人看到这些标签/控件的类似行为和任何解决方案的想法?一个解决方法显然是使用type=button并只是设置按钮的样式,但我宁愿不这样做,如果我可以type=image正确行为.

Inf*_*oop 9

输入类型"图像"类似于提交按钮.它正在提交表单,因为这就是他们所做的.如果您的代码隐藏不是在您不期望的回发的情况下重建表,则该表将不会被重建,因此消失(请记住,无论何时动态构建控件,您都必须在每个请求中执行此操作).如果您不希望按钮回发,请让OnClick处理程序返回false以取消发布.如果你想要按钮回发,那么你有一个不同的问题,可能与错误地使用动态控件有关.