2016-07-01 14 views
1

다음은 삭제 기능에 사용하는 코드입니다. Telerik Radgrid에서 행 삭제. 선택한 행의 인덱스를 얻는 방법은 무엇입니까?

RadgridItemdatabound의 연료 소모량, 나는이를 포함해야

...

foreach (GridColumn col in RadGrid1.MasterTableView.Columns) 
       { 
        dataItem["TemplateDeleteColumn"].Attributes.Add("onclick","CellClick('" + dataItem.ItemIndex + "','" + col.UniqueName + "');"); 
       } 

은 그 때 나는 Itemcommand 기능을 만들어야합니다.

protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e) 
    { 
     if (e.CommandName == "DeleteSelected") 
     { 
      GridDataItem item = (GridDataItem)e.Item; 
      var itemIndex = item.ItemIndex; 
      string LoginId = item.GetDataKeyValue("LoginId").ToString(); 
      Int32 CampusCode = Convert.ToInt32(item.GetDataKeyValue("CampusCode")); 


      Definations def = new Definations(); 
      Int32 Result = def.deleteUserAssignCampus(LoginId, CampusCode); 
      if (Result == 1) 
      { 
       BindDeptDatasimple(); 

       cmbColumName.SelectedValue = ""; 
       cmbDirection.SelectedValue = ""; 
       Response.Redirect("UserCampus.aspx", false); 
       Session["deleteUserCampus"] = "Campus dissociated successfully."; 
      } 
     } 
    } 

"var ItemIndex"에서 선택한 행의 색인을 가져올 수 없습니다. ItemIndex에서 항상 0 인덱스를 반환합니다. 그래서 그리드의 첫 번째 행이 삭제됩니다. 선택한 행의 인덱스를 어떻게 선택할 수 있습니까?

답변

0

귀하의 경우 MasterTableView의 클라이언트 개체 방법을 통해 사용자 지정 명령을 발생시키기 때문에 항목 색인의 기본값은 0입니다.

커스텀 JS 함수 CellClick에서 항목 인덱스가 클라이언트 메소드의 두 번째 인수 인 fireCommand으로 전달되어야합니다.

masterTable.fireCommand("DeleteSelected", itemIndex); 

그런 RadGrid1_ItemCommand 이벤트 처리기에서,이

GridDataItem item = (GridDataItem)e.Item; 
var itemIndex = e.CommandArgument; 
같은 인덱스 값을 검색 할 수 있습니다