4
我在LoginView的RoleGroup中有一些文本框和复选框。我如何在代码隐藏中访问这些控件?在LoginView的RoleGroup中查找控件
<asp:LoginView ID="lgvAdmin" runat="server">
<RoleGroups>
<asp:RoleGroup Roles="Administrator">
<ContentTemplate>
<div class="floatL">
<h1>Administrator Settings</h1>
<asp:CheckBox ID="chkActive" Text="Is Active" Checked="false" runat="server" /><br />
<asp:CheckBox ID="chkIsRep" Text="Is Representative" Checked="false" runat="server" />
<br /><br />
<strong>User Permissions</strong><br />
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="3" Width="200" Font-Bold="true">
<asp:ListItem Value="User" Selected="True">User</asp:ListItem>
<asp:ListItem Value="Administrator">Administrator</asp:ListItem>
</asp:RadioButtonList><br /><br />
<strong>Assigned to Rep</strong><br />
<asp:DropDownList ID="DDLRep" CssClass="ddlStyle" Width="165" runat="server" />
</div>
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
我知道我需要使用FindControl方法,我也知道这是不是只是lgbvAdmin.FindControl(“chkIsRep”),因为这里的控制是层次结构。
所以,它应该是这样的,lgvAdmin.controls [0] .FindControl(“chkIsRep”);
如何找到访问我的控件的确切路径?
+1了正确的轨道!或者,'ITemplate template = lgvAdmin.RoleGroups [0] .ContentTemplate.InstantiateIn(container)'将其缩小一点。如果您不知道要搜索的角色,请使用LoginView.RoleGroups来查找它们。如果您知道子控件的索引,在将ContentTemplate实例化为控件容器后,您也可以像访问它一样来避免循环容器中的每个控件。 'CheckBox chk =(CheckBox)container.Controls [1];' – clamchoda 2012-04-12 16:05:33