1

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

在 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 中返回零索引。这就是网格中第一行被删除的原因。如何获得选定行的选定索引?

4

1 回答 1

0

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

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

masterTable.fireCommand("DeleteSelected", itemIndex); 

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

GridDataItem item = (GridDataItem)e.Item;
var itemIndex = e.CommandArgument;
于 2016-07-03T08:05:30.463 回答