以下是我用于删除功能的代码。
在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)
项目索引将默认为0,因为在您的情况下,您引发自定义命令 通过MasterTableView的客户端对象方法。
您必须确保在自定义JS函数CellClick
中,通过第二个参数将项索引传递到fireCommand
客户端方法。
masterTable.fireCommand("DeleteSelected", itemIndex);
然后在RadGrid1_ItemCommand
事件处理程序中,您可以像这样检索索引值
GridDataItem item = (GridDataItem)e.Item;
var itemIndex = e.CommandArgument;