Я использую devexpress 9.1.
У меня есть devexpress gridview, связанный с источником данных.установили размер страницы = "20".Включено Настройки ShowFilterRow = "true" ;
У меня есть столбец с кнопкой asp image, устанавливающей аргументы команды в значение.
Ниже приведен код
<dxwgv:ASPxGridView ID="ASPxGridView2" runat="server" DataSourceID="sds_addingredients"
AutoGenerateColumns="False" KeyFieldName="Ingredients_Id" ClientInstanceName="grid2">
<Settings ShowFilterRow="true" />
<SettingsPager PageSize="20"></SettingsPager>
<Columns>
<dxwgv:GridViewDataTextColumn Caption="S.No" VisibleIndex="0" >
<DataItemTemplate>
<%#Container.ItemIndex +1 %>
</DataItemTemplate>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn VisibleIndex="1" Caption=" ">
<DataItemTemplate>
<asp:ImageButton ID="btn_edit" runat="server" CommandArgument='<%# Eval("Ingredients_Id") %>' Height="15px"
ImageUrl="~/images/document_edit.png" ToolTip="Edit"
Width="15px" />
</DataItemTemplate>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn VisibleIndex="1" FieldName="Ingredients_Id"
ReadOnly="True" Visible="False">
<EditFormSettings Visible="False" />
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn Caption="Ingredient" FieldName="Ingredients_Name" VisibleIndex="2" Settings-ShowFilterRowMenu="True" >
</dxwgv:GridViewDataTextColumn>
</Columns>
Ниже приведен код на стороне сервера
protected void ASPxGridView2_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
{ string id = e.CommandArgs.CommandArgument.ToString();//perform certain opertation based on the id}
Вышеуказанный метод работает правильно, но когда я фильтрую результат и щелкаю определенную строку, идентификатор, полученный на стороне сервера , выглядитотличается не соответствует тому, что я нажал.я чувствую, что он получает неправильный индекс строки ... это происходит только тогда, когда я пытаюсь фильтровать и выполнять щелчок команды строки.В остальном, это работает правильно.почему это.