Sarawut Positwinyu Sarawut Positwinyu - 15 days ago 8
ASP.NET (C#) Question

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.

Answer

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