У меня есть DataGrid в ASP.NET 2.0 со следующим столбцом:
<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, но это не сработало. Я попытался установить enable на false, это тоже не сработало. А потом я снова попытался связать данные с DataGrid - не работает. Ссылки продолжают нормально функционировать.
Кто-нибудь знает, почему это не работает, что можно сделать, чтобы заставить его работать, и, если оно в корне ошибочно, альтернативное решение? Я хочу либо скрыть ссылку для определенных строк, либо скрыть ее, чтобы ее нельзя было щелкнуть.