GridView中动态显示或隐藏某行中的控件解决方法
GridView中动态显示或隐藏某行中的控件
请问如何动态的显示或隐藏某行中的控件。现在设置控件的visible属性或者TableCell的display属性都行不通。请问是什么原因或者如果解决这个问题。
------解决方案--------------------
//WebUserControl.ascx.cs
请问如何动态的显示或隐藏某行中的控件。现在设置控件的visible属性或者TableCell的display属性都行不通。请问是什么原因或者如果解决这个问题。
------解决方案--------------------
//WebUserControl.ascx.cs
- HTML code
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:DropDownList runat="server" ID="DropDownList1" onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true" > <asp:ListItem Value="1">Item 1</asp:ListItem> <asp:ListItem Value="2">Item 2</asp:ListItem> <asp:ListItem Value="3">Item 3</asp:ListItem> <asp:ListItem Value="其它">其它</asp:ListItem> </asp:DropDownList> <asp:TextBox ID="TextBox1" runat="server" Visible="false" /> </ContentTemplate> </asp:UpdatePanel>
------解决方案--------------------
也就是说DropDownList和TextBox都放在UserControl里。根据选项隐藏或显示的处理代码也放到UserContrl的.cs里。
为了尽量避免闪烁,给UserControl套一个UpdatePanel,且设置UpdateMode为Conditional.
然后在主页面放置一个ScriptManager, 在TemplateField里放置UserControl.