【发布时间】:2014-04-24 09:48:00
【问题描述】:
我的网络表单上有一个网格视图。我在 gridview 的模板字段中设置了一个超链接控件。我希望这个超链接应该只对站点管理员可见。我已经通过 Gridview_RowDataBound 属性做到了这一点。但我不想这样做,而是想在页面加载中隐藏这个超链接。
这是我到目前为止所做的。
aspx 页面-
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" onrowdatabound="GridView1_RowDataBound1"
BorderStyle="None" EnableModelValidation="True" ShowHeader="False" Width="1000px" GridLines="None">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink2" runat="server" Font-Bold="True" Font-Size="Small"
ForeColor="#FF3300" CommandName="EDT" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
NavigateUrl='<%# Eval("id","test1.aspx?id={0}") %>'>HyLink</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
cs页面-
protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Convert.ToString(Session["logname"]) != "Admin")
{
HyperLink Hlnk = e.Row.FindControl("HyperLink2") as HyperLink;
Hlnk.Visible = false;
}
}
}
如何在页面加载中执行此操作?请指导。
【问题讨论】:
-
为什么要在 Page_Load 上?
-
@Adil:实际上我在网格视图中放置了一个复选框。我已经根据特定条件在复选框的选中属性中编写了一些代码。因此,当我使用 Gridview_RowDataBound() 属性时,选中的属性不起作用。所以我删除了它。然后之前我通过 RowDataBound 属性隐藏了这个超链接控件。那就是我想要一个通过页面加载以某种方式做到这一点的解决方案。
标签: c# asp.net gridview hyperlink