如何动态显示和隐藏ASP.NET数据网格中的列
问题描述:
我的DataGrid是这样的:
My DataGrid is something like this:
<pre><asp:DataGrid ID="tasks" runat="server" AutoGenerateColumns="False" GridLines="None">
<HeaderStyle CssClass="task-list-header"/>
<ItemStyle CssClass="task-list-row"/>
<Columns>
<asp:BoundColumn DataField="Name"
HeaderStyle-Width="100px"
HeaderText="Name"></asp:BoundColumn>
<asp:BoundColumn DataField="Description"
HeaderStyle-Width="250px"
HeaderText="Description"></asp:BoundColumn>
<asp:BoundColumn DataField="IsComplete"
HeaderStyle-Width="125px"
HeaderText="Is Complete"></asp:BoundColumn>
<asp:TemplateColumn>
<HeaderStyle Width="75px"/>
<ItemTemplate>
<asp:HyperLink ID="Hyperlink1" runat="server"
NavigateUrl='<%# ModuleContext.EditUrl("TaskId", Eval("TaskId").ToString(), "EditTask") %>'
Text="Edit"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="75px"/>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
CommandArgument='<%# Eval("TaskId") %>' CommandName="Delete" Text="Delete"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
这基本上是最后一个任务列表编辑和删除2列。我正在使用DNN8。如果用户未以超级用户身份登录,我想隐藏编辑和删除链接。我怎么能这样做?
我尝试过:
我使用OnAutoBinding属性尝试了该属性,并在后面的代码中定义了一个函数,但我没有再进一步了。感谢hwlp。
This is basically a list of Task with Last 2 columns as Edit and Delete. I am using DNN8. I want to hide the Edit and Delete links if the user is not logged in as Superuser. How can I do that?
What I have tried:
I tried the property using the OnAutoBinding attribute and defining a function in the code behind but I didn't go any further. Thanks for the hwlp.
答
bool isSuperUser = checkIsSuperUser();
if (!isSuperUser)
{
tasks.Columns[3].Visible = false; // edit column index
tasks.Columns[4].Visible = false; // delete column index
}