从Telerik Radgrid中删除一行。我如何获得所选行的索引?

时间:2016-07-01 05:09:02

标签: telerik radgrid delete-row itemdatabound itemcommand

以下是我用于删除功能的代码。

在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中返回零索引。这就是为什么网格中的第一行被删除的原因。我怎样才能选择所选行的索引?

1 个答案:

答案 0 :(得分:0)

项目索引将默认为0,因为在您的情况下,您引发自定义命令 通过MasterTableView的客户端对象方法。

您必须确保在自定义JS函数CellClick中,通过第二个参数将项索引传递到fireCommand客户端方法。

masterTable.fireCommand("DeleteSelected", itemIndex); 

然后在RadGrid1_ItemCommand事件处理程序中,您可以像这样检索索引值

GridDataItem item = (GridDataItem)e.Item;
var itemIndex = e.CommandArgument;