2011-08-26 3 views
1

devexpress 9.1을 사용 중입니다.Devexpress Gridview Row 명령 필터링 사용시 오류 발생

데이터 소스에 바인드 된 devexpress gridview가 있습니다. 페이지 크기 = "20"으로 설정했습니다. 사용 설정 설정 ShowFilterRow = "true";

나는 값으로 명령 인수를 설정하는 ASP 이미지 단추가있는 열이 있습니다. 이하

나는 결과를 필터링하여 특정 행을 클릭하면, 상기 방법이 제대로 작동

protected void ASPxGridView2_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e) 
    { string id = e.CommandArgs.CommandArgument.ToString();//perform certain opertation based on the id} 

가 있지만, ID가 서버에 수신 된 표시 서버 측 코드 아래 코드

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

인 끝은 내가 뭘 클릭 한 것과 일치하지 않는 것 같습니다. 나는 그것이 잘못된 행 인덱스를 얻는다고 느낍니다 ... 이것은 필터링을 시도하고 행 명령을 수행 할 때만 발생합니다. 다른 적절한 방법으로 제대로 작동합니다. 왜 이런거야.

답변

0

KeyValue 속성을 사용해 보셨습니까?

protected void ASPxGridView2_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e) 
    { 
     int id = Convert.ToInt32(e.KeyValue); 
     //perform certain opertation based on the id 
    } 
+0

안녕하세요. 작동 원리 ... :-) – pheonix4eva