RadGrid 的每一行的EditForm 都不同。首先,您必须获取正在编辑的行的行索引并获取对 Edit 表单的引用。然后你可以在编辑表单中找到Control。示例代码可能如下:
if (e.CommandName == RadGrid.InitInsertCommandName)
{
RadGrid radgrid = (RadGrid)sender;
int rowindex = e.Item.RowIndex;
GridEditFormItem item = radgrid.MasterTableView.GetItems(GridItemType.EditFormItem)[rowindex] as GridEditFormItem;
DropDownList statusDropDownList = (DropDownList)item.FindControl("Status");
statusDropDownList.Visible = false;
}
但是,这可能不是您所需要的。我的意思是当页面在 ItemCommand 上进行回发时,状态下拉列表将可见,我认为您只需要在单击插入命令时隐藏控件(更新和插入的不同行为)。
因此,您可以访问 DropDownList 并将其隐藏在 ItemCreated 事件或 ItemDataBound 事件中。
例如:
void rad_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormInsertItem)
{
DropDownList statusDropDownList = (DropDownList)e.Item.FindControl("Status");
statusDropDownList.Visible = false;
}
}