如何通过页面加载内部的代码隐藏gridview内部的超链接控件
本文关键字:内部 隐藏 gridview 超链接 控件 代码 何通过 加载 | 更新日期: 2023-09-27 18:00:04
我的web表单上有一个gridview。我在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;
}
}
}
如何在页面加载中做到这一点?请引导。
试试这个:
foreach(GridViewRow row in GridView1.Rows) {
if(row.RowType == DataControlRowType.DataRow) {
HyperLink myHyperLink = row.FindControl("HyperLink2") as HyperLink;
myHyperLink.Visible = false;
}
}
或:
for (int i = 0; i < GridView1.Rows.Count; i++)
{
HyperLink myHyperLink = (HyperLink)gvExcParts.Rows[i].FindControl("HyperLink2");
myHyperLink.Visible = false;
}
但请确保将数据绑定到gride视图,然后在其中找到控件,否则这将不起作用。
在DataBind到GridView之后尝试此操作。。。
GridView1.Columns[3].Visible = false;