如何根据条件隐藏gridview中的列?

时间:2017-07-20 11:12:48

标签: asp.net session gridview

我在gridview中有一个包含两个按钮的动作字段。我想隐藏动作列,具体取决于我的会话变量“role”!=“admin”的条件。意味着如果会话变量不是admin,我想隐藏列。以下是我的代码: -

<asp:TemplateField HeaderText="Action" HeaderStyle-Width="200px" HeaderStyle-CssClass="text-center"
    ItemStyle-CssClass="text-center">
    <ItemTemplate>
        &nbsp;&nbsp;
                    <asp:LinkButton ID="LinkButton1" ButtonType="Button" title="Edit" CssClass="fa fa-edit btn btn-info btn-sm"
            Text="Edit"
            runat="server" CommandArgument='<%# Eval("Id")%>' CommandName="Select" />
        &nbsp;&nbsp;
        <asp:LinkButton ID="LinkButton2" CssClass="fa fa-trash-o btn btn-danger btn-sm" Text="Delete"
            Visible='<%# (Session["role"].ToString()=="admin"|| Session["role"].ToString()=="editor"||Session["role"].ToString()=="hotel")?true:false %>'
            runat="server" CommandArgument='<%# Eval("Id") %>' CommandName="Delete"></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以隐藏代码背后的列。

if (User.IsInRole("Admin") == false)
{
    GridView1.Columns[0].Visible = false;
}

或者作为一个班轮。

GridView1.Columns[0].Visible = !User.IsInRole("Admin");