Rowcommand не срабатывает после нажатия кнопки - PullRequest
7 голосов
/ 07 июля 2011

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

Это кнопка, которая использует команду

<dxwgv:ASPxGridView ID="gdvxUsers" runat="server" AutoGenerateColumns="False" Width="100%" KeyFieldName="UserName" onrowcommand="gdvxUsers_RowCommand">
        <Columns>
        <dxwgv:GridViewDataTextColumn Caption="Edit" VisibleIndex="0" Width="0px">
            <DataItemTemplate>
                <asp:ImageButton ID="imbEdit" runat="server"
                    CommandName = "Edit"
                    ImageUrl="~/images/icon/Edit-icon.png" ClientIDMode="Static" />
            </DataItemTemplate>
        </dxwgv:GridViewDataTextColumn>
</dxwgv:ASPxGridView>

    protected void gdvxUsers_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
    {
        switch (e.CommandArgs.CommandName)
        {
            case "Edit":



            break;
        }
    }

Команда строки не срабатывает при нажатии кнопки.

Ответы [ 2 ]

10 голосов
/ 07 июля 2011

Проблема в том, что на Page_Load я использую Databind() команду в сетке, которую я использую rowcommand, кажется, что после DataBind(), rowcommand отменяется.

    protected void Page_Load(object sender, EventArgs e)
    {
            gdvxUsers.DataSource = GetAllUserAndRole();
            gdvxUsers.DataBind();            
    }

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

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            gdvxUsers.DataSource = GetAllUserAndRole();
            gdvxUsers.DataBind();
        }
    }
1 голос
/ 28 февраля 2012

Возможно, вы сделали EnableViewState="false" в сетке.

Если это так, Rowcommand Event также не будет срабатывать.

Вы сделали EnableEventValidation="true" на стр.

Если это так, RowCommand Event Не будет срабатывать, установите для этого параметра значение false.

Решение состоит в том, чтобы установить его в true.

...