Col*_*ard 1 asp.net updatepanel webforms
我接到了一个巨大的 Webforms 项目,我试图理解它,但我遇到了一个问题,即更新面板复制了很多内容。面板的 aspx 代码很大,有数百行,但它基本上看起来像这个简单的例子,只有更多asp:TextBox和asp:ListBox.
<asp:UpdatePanel runat="server" ChildrenAsTriggers="true" RenderMode="Block" UpdateMode="Conditional">
<ContentTemplate>
<div><table><tbody><tr><td>
<label>Search</label><asp:TextBox ID="Search" runat="server" />
<asp:LinkButton runat="server" OnClick="find_Click" >Find</asp:LinkButton>
</td></tr></tbody></table></div>
<div id="a"><table><tbody><tr><td>
<label>Result</label><asp:TextBox ID="Result" runat="server" />
</td></tr></tbody></table></div>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
和这样的代码。
public void find_Click(Object sender, EventArgs e)
{
Result.Text = "oranges";
}
Run Code Online (Sandbox Code Playgroud)
当您单击 LinkButton 时,我希望在结果中看到该<div id="a">部分,但在 TextBox 中看到文本“oranges”。你实际得到的是<div id="a">“橙子”,然后是<div id="a">带有空文本框的原始文本。最糟糕的一点是,它没有做,在这个简单的例子,甚至也不是在一个页面中,我创建了所有原始asp:TextBox和asp:ListBox,但以虚拟数据填充。任何人都可以指出我解决这个问题的任何好方法吗?
另一个解决方案是,以确保所有的HTML标签关闭内asp:UpdatePanel。就我而言,我将打开header标记放置在Site.Master文件中(在 UpdatePanel 控件之外)和在 UpdatePanel 控件中(在aspx页面上)关闭标题标记。因此,每次 UpdatePanel 回发时,它都会再次重新创建结束标头标记,从而导致内容被复制。在我将结束标记放入 Site.Master 文件后,一切都运行良好。
| 归档时间: |
|
| 查看次数: |
4384 次 |
| 最近记录: |