2016-07-01 3 views
1

Вот код, который я использую для удаления функциональности.Удалите строку из Telerik Radgrid. Как получить индекс выбранной строки?

В RadgridItemdatabound Funtion, я должен включить это ...

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.

Вам нужно будет убедиться, что в вашей пользовательской функции JS, CellClick, индекс предмета передается через клиентский метод fireCommand через 2-й аргумент.

masterTable.fireCommand("DeleteSelected", itemIndex); 

RadGrid1_ItemCommand Затем в обработчике события, вы можете получить значение индекса, как этот

GridDataItem item = (GridDataItem)e.Item; 
var itemIndex = e.CommandArgument; 
Смежные вопросы