我有Telerik Radgrid。我想在特定条件为真时禁用页面加载事件上的超链接列。 我从数据库获取角色id,并根据角色id想要在页面加载事件上禁用超链接列。 我的代码在这里
if(RoleId==3)
{
btnsave.Enabled= false;
foreach(griddataitem item in RagGrid1.Items)
{
HyperLink edit = (hyperlink)item["EditHyperLinkColumn"].Controls[0];
edit.Enabled = false;
}
}
当页面加载时,它获取角色ID,但没有进入foreach语句。 请提前帮助。谢谢...
答案 0 :(得分:2)
你把foreach循环放在哪里?在Page_Load方法?这可能不起作用,因为RadGrid有自己的生命周期,事件按特定顺序发生。
您可以做的是在ItemDataBound
事件中应用您的条件。
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
var item = (GridDataItem)e.Item;
var editlink = item.FindControl("EditHyperLinkColumn") as HyperLink;
if (editlink != null)
{
editlink.Enabled = false;
}
}
}
答案 1 :(得分:0)
您需要获取MasterTableView中的项目。 此外,验证超链接列的UniqueName。它实际上是“EditHyperLinkColumn”吗?
if(RoleID == 3)
{
btnsave.Enabled = false;
foreach(GridDataItem item in RadGrid1.MasterTableView.Items)
{
HyperLink edit = (HyperLink)item["EditHyperLinkColumn"].Controls[0];
edit.Enabled = false;
}
}