Rowcommand не срабатывает после нажатия кнопки
Я уже нашел решение, я просто хочу опубликовать его, так что это может быть полезно для некоторых людей.
Это кнопка, которая использует команду
<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;
}
}
Команда Row не срабатывает при нажатии кнопки.
2 ответа
Решение
Проблема в том, что на Page_Load
я использую Databind()
команда на gridview я использую 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();
}
}
Вы, возможно, сделали EnableViewState="false"
в сетке.
Если это так, Rowcommand Event
тоже не будет стрелять.
Вы сделали EnableEventValidation="true"
на странице.
Если это так, RowCommand Event
Не будет стрелять, установите это в false.
Решение состоит в том, чтобы установить его в true.