在我的中继器上,我给了一张桌子并且想要为角色管理员的用户显示一个列 我需要删除HeaderTemplate和ItemTemplate中的列 我可以使用数据逻辑并添加一个布尔值的db列,但之后我需要向SP发送用户角色。
<asp:Repeater ID="TemplatesList" runat="server">
<HeaderTemplate>
<table>
<tr>
<th>
#
</th>
<th>
Title
</th>
<th>
Subject
</th>
<th>
</th>
<th>
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Eval("ET_ID")%>
</td>
<td>
<%# Eval("ET_Title")%>
</td>
<td>
<%# Eval("ET_Subject")%>
</td>
<td>
<a href="<%# VirtualPathUtility.ToAbsolute("~/Admin/EmailsTemplates/Delete.aspx?id="+Eval("ET_ID").ToString())%>">
Delete</a>
</td>
<td>
<a href="<%# VirtualPathUtility.ToAbsolute("~/Admin/EmailsTemplates/Edit.aspx?id="+Eval("ET_ID").ToString())%>">
Edit</a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
答案 0 :(得分:2)
如果你只想隐藏列,可以使用LoginView控件,它可以根据角色选择内容:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview.aspx
它应该在模板中工作
或者您可以使用内联脚本,如下所示:
<% if (User.IsInRole("Admin")) { %>
<td> xxx </td>
<% } %>