Custom gridview - привязка с использованием нестатической функции - PullRequest
0 голосов
/ 26 мая 2009

В настоящее время я пытаюсь реализовать пользовательский интерфейс сетки просмотра для отображения данных из внешнего интерфейса ObjectDataSource в членство ASP.net. Код asp.net для вида сетки

        <asp:GridView
            id="grdUsers"
            HeaderStyle-cssclass="grid_header"
            RowStyle-cssclass="row"
            AlternatingRowStyle-cssclass="alternating"
            OnRowUpdating="grdUsers_RowUpdating"
            OnRowDeleting="grdUsers_RowDeleting"
            OnRowCancelingEdit="grdUsers_cancelEdit"
            datasourceid="srcUsers"
            autogeneratecolumns="false"
            allowsorting="true"
            AllowPaging="true"
            EmptyDataText="No users..."
            pagesize="9"
            runat="server">
            <Columns>
                <asp:CommandField
                    HeaderText="Ops"
                    ButtonType="Image"
                    ShowEditButton="true"
                    EditText="E"
                    UpdateText="U"
                    ShowCancelButton="true"
                    CancelText="X"
                    ShowDeleteButton="true"
                    DeleteText="D" />
                <asp:BoundField
                    ReadOnly="true"
                    DataField="UserName"
                    HeaderText="UserName" />
                <asp:BoundField
                    DataField="Email"
                    HeaderText="Contact Email" />
                <asp:TemplateField
                    HeaderText="Role">
                    <ItemTemplate>
                    <asp:Label 
                        ID="lblRole"
                        text="<%# namespace.Admin.getRoleOfUser( ) %>" 
                        runat="server" />
                    </ItemTemplate>
                    </asp:TemplateField>
                <asp:CheckBoxField
                    DataField="IsApproved"
                    HeaderText="User is Approved" />
                <asp:TemplateField 
                    HeaderText="UserLocked">
                    <ItemTemplate>
                    <asp:CheckBox 
                        id="grdUsers_lockCheckBox"
                        Checked='<%# Eval("IsLockedOut") %>'
                        Enabled="false"
                        runat="server" />
                    </ItemTemplate>
                    <EditItemTemplate>
                    <asp:Button 
                        id="grdUsers_unlockUser"
                        OnClick="grdUsers_unlockUser"
                        Text="Unlock"
                        runat="server" />
                    <asp:HyperLink 
                        id="grdUsers_lockInfo"
                        text="?"
                        onclick='popup("lock_info.html")'
                        runat="server" /> 
                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>
            </asp:GridView>

Мой код в настоящее время умирает, потому что функция get roleOfUser () является публичной функцией. Предпочтительно я хотел бы передать строку имени пользователя (извлеченную из второй ячейки GridView) этой функции, но в этом я не уверен, а также как вызвать эту нестатическую функцию, так как я не знаю, как создать его экземпляр из кода asp.net.

    public string getRoleOfUser( )
    {
        GridView users = (GridView)admin.FindControlRecursive(Page, "grdUsers");
        Int32 i = users.EditIndex;

        GridViewRow userRow = users.Rows[i];

        return userRow.Cells[1].Text;
    }

    private Control FindControlRecursive(Control root, string id)
    {
        if (root.ID == id)
        {
            return root;
        }

        foreach (Control c in root.Controls)
        {
            Control t = FindControlRecursive(c, id);
            if (t != null)
            {
                return t;
            }
        }

        return null;
    } 

1 Ответ

1 голос
/ 26 мая 2009

Это должно быть просто:

<% getRoleOfUser( ) %>

Предполагая, что функция-член страницы включена на вашем GridView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...