单击按钮后在表格单元格中加载UserControls
本文关键字:加载 UserControls 单元格 表格 按钮 单击 | 更新日期: 2023-09-27 18:24:49
在我的aspx页面中有一个只有一行两列的表,如:
<table runat="server" id="MainTable">
<tr>
<td>
<asp:Button runat="server" Text="Button 1" ID="btn1" OnClick="btn1_Click" />
<asp:Button runat="server" Text="Button 2" ID="btn2" OnClick="btn2_Click" />
<asp:Button runat="server" Text="Button 3" ID="btn3" OnClick="btn3_Click" />
</td>
<td>
<%-- place the user control here -->
</td>
</tr>
</table>
是否可以在单击每个按钮时在第二个单元格中加载UserControl?
例如,如果我单击按钮1,则必须在第二个单元格中加载UserControl1。如果我单击按钮2,则必须卸载userControl1并加载userControl2,依此类推
提前谢谢。
Luigi
在这种情况下,不应该动态加载UserControl。切换所有控件的可见性当然更好。因此,将三个UserControls静态地添加到表单元格中,并使它们最初成为Visible="false"
。然后在每个按钮的单击事件中相应地更改这些属性。
向页面添加用户控件非常简单,您可以像向页面加载任何其他控件一样加载它:
MyUserControl myControl = (MyUserControl) Page.LoadControl("MyUserControl.ascx");
Page.Controls.Add(myControl);
我真的很欣赏动态加载它的想法。
但你应该只在需要时加载它,并在完成后处理它,或者第二次点击按钮,处理它并删除控件,然后再次加载。。。否则,它将始终保留在您的RAM中。。。。并可能导致内存泄漏。。
示例HTML
<asp:Table runat="server" ID="MainTable">
<asp:TableRow>
<asp:TableCell ID="cell1" runat="server">
<asp:Button runat="server" Text="Button 1" ID="btn1" OnClick="btn1_Click" />
<asp:Button runat="server" Text="Button 2" ID="btn2" OnClick="btn2_Click" />
<asp:Button runat="server" Text="Button 3" ID="btn3" OnClick="btn3_Click" />
</asp:TableCell>
<asp:TableCell ID="cell2" runat="server">
</asp:TableCell>
</asp:TableRow>
</asp:Table>
点击按钮
cell2.Controls.Add(Your User Control ID);
编辑-1
cell2.Controls.Clear();
cell2.Controls.Add(Your User Control ID);