Найти управление в RoleGroup LoginView - PullRequest
4 голосов
/ 21 октября 2010

У меня есть некоторые текстовые поля и флажки внутри RoleGroup LoginView.Как я могу получить доступ к этим элементам управления в моем коде?

<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");

Как найти точный путь для доступамой контроль?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Я знаю, что это старый пост, но вот быстрый пример того, как это сделать для всех, кому нужен ответ:

ITemplate template = lgvAdmin.RoleGroups[0].ContentTemplate;
if (template != null)
{
    Control container = new Control();
    template.InstantiateIn(container);

    foreach (Control c in container.Controls)
    {
        if (c is CheckBox)
        {
            //Do work on checkbox
        }
    }
}
0 голосов
/ 26 июля 2018

, если запрос не аутентифицирован, шаблон rolegroup не будет применяться к странице и не может быть найден там для использования, если блок, как показано ниже

if(Request.IsAuthenticated)
{
    CheckBox chkactive=(CheckBox)lgvAdmin.FindControl("chkActive");
    chkavtive.Checked=true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...