我在 ASP.NET 2.0 中有一个 DataGrid,其中包含以下列:
<ASP:TEMPLATECOLUMN>
<ItemStyle HorizontalAlign="Right"></ItemStyle>
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server"
CssClass="DataGridCommand" Target="_blank"
NavigateUrl='<%# GetPreviewURL(DataBinder.Eval(Container, "DataItem.NodeID")) %>'>
Preview Graphic
</asp:HyperLink>
</ItemTemplate>
</ASP:TEMPLATECOLUMN>
所以基本的想法是在 DataGrid 的每一行中都有一个链接,它会返回一个弹出图像预览(指的是 NodeID 的数据绑定列)。这工作得很好。
我正在尝试禁用没有关联图像的行的链接。为此,我将其放在后面的代码中,在 Page_Load 下:
foreach (DataGridItem dgi in this.dgNode.Items)
{
HyperLink myLink1 = (HyperLink)dgi.Cells[0].FindControl("HyperLink1");
//myLink1.Visible = false;
//if (condition for hiding links goes here...)
myLink1.Enabled = false;
this.dgNode.DataBind();
}
如您所见,我尝试将 visible 属性设置为 false,但这不起作用。我尝试将启用设置为false,它也不起作用。然后我再次尝试对 DataGrid 进行数据绑定——不起作用。链接继续正常运行。
有谁知道为什么这不起作用,可以做些什么来使它起作用,如果它从根本上存在缺陷,另一种解决方案?我希望将某些行的链接变灰,或者将其隐藏以使其无法单击。