Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rowcommand do not fire after clicking button

I have already find out the solution, i just want to post it so this may be useful for some people

This is the button that use command

<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;
        }
    }

The Row Command is not fire when the button is clicked.

like image 570
Sarawut Positwinyu Avatar asked Jul 07 '11 05:07

Sarawut Positwinyu


Video Answer


2 Answers

The Problem is that on Page_Load I use Databind() command on the gridview I'm using rowcommand, it seems that after DataBind(), rowcommand is cancelled.

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

So I fix this problem by binding data only on first load.

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            gdvxUsers.DataSource = GetAllUserAndRole();
            gdvxUsers.DataBind();
        }
    }
like image 197
Sarawut Positwinyu Avatar answered Sep 19 '22 02:09

Sarawut Positwinyu


You may have made EnableViewState="false" in grid.

If this is the case, Rowcommand Event will also not fire.

You have made EnableEventValidation="true" on page.

If this is the case, RowCommand Event Will Not Fire, Set This To false.

The solution is to set it to true.

like image 44
Amitesh Kaushik Avatar answered Sep 19 '22 02:09

Amitesh Kaushik