我有一个看起来像这样的ascx:
<UpdatePanel Parent mode = Conditional>
<UpdatePanel1 mode = Conditional>
//A form here with textboxes, etc
//A repeater here with a linkbutton that causes a postback
</UpdatePanel1>
</UpdatePanel Parent>
在转发器的OnItemCommand中,我获取表单值并设置它们。它工作正常,但有重新渲染的形式(即,一个闪烁的形式消失并重新出现)。考虑到我在UpdatePanel中有这个问题,为什么会这样?
修改: 我似乎有一半通过将表单和转发器分成不同的更新面板来解决问题。但是,现在的问题是,即使服务器端代码运行,当我点击转发器中的链接按钮时,表单也不会更新。
再次编辑:
我想我知道发生了什么事。在确定之前我有一个问题(希望如此)。表格如下:
<tr>
<td>
<asp:checkbox id="chkSelect" runat="server" />
<asp:label text="Something" runat="server" />
<asp:textbox id="txtSomething" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:checkbox id="chkSelect2" runat="server" />
<asp:label text="Something2" runat="server" />
<asp:textbox id="txtSomething2" runat="server" />
</td>
</tr>
点击链接按钮时我所关心的只是更新文本框控件。我希望其他一切都保持原样。
有没有办法只在那些控件上有条件地触发更新?
我知道我可以使用JS但宁愿避免它(因为在我知道文本框的值之前有很多服务器端处理)
@Roselberg - 我不感兴趣的控件的状态,实际上是在一个巨大的JS脚本中设置在客户端,该脚本在加载时运行,我真的没有太多的控制权通过脚本
答案 0 :(得分:0)
如果您只想有条件地更新文本框,则需要将它们放在自己的UpdatPanel中。确保链接按钮触发了这些UpdatePanel,一切都应该正常。
虽然我不确定你的意思
我希望其他一切都能保持下去 他们的方式。
只有在回发期间有更改代码的代码时,复选框和标签才会更改。
答案 1 :(得分:0)
ASP.NET AJAX的体系结构实际上覆盖了UpdatePanel中的整个html。它不会单独更新值。基本上,有三种选择: