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 に設定しようとしましたが、うまくいきませんでした。enable を false に設定しようとしましたが、うまくいきませんでした。そして、DataGrid のデータバインドを再度試みましたが、うまくいきません。リンクは引き続き正常に機能します。
これが機能しない理由、機能させるために何ができるか、根本的に欠陥がある場合は代替ソリューションを知っている人はいますか? 特定の行のリンクをグレー表示にするか、クリックできないように非表示にすることを検討しています。