转发器条件视图,没有数据逻辑

时间:2011-03-21 07:29:56

标签: asp.net asp.net-webcontrol

在我的中继器上,我给了一张桌子并且想要为角色管理员的用户显示一个列 我需要删除HeaderTemplate和ItemTemplate中的列 我可以使用数据逻辑并添加一个布尔值的db列,但之后我需要向SP发送用户角色。

<asp:Repeater ID="TemplatesList" runat="server">
    <HeaderTemplate>
        <table>
            <tr>
                <th>
                    #
                </th>
                <th>
                    Title
                </th>
                <th>
                    Subject
                </th>
                <th>
                    &nbsp;
                </th>
                <th>
                    &nbsp;
                </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>

1 个答案:

答案 0 :(得分:2)

如果你只想隐藏列,可以使用LoginView控件,它可以根据角色选择内容:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview.aspx

它应该在模板中工作

或者您可以使用内联脚本,如下所示:

<% if (User.IsInRole("Admin")) { %>
<td> xxx </td>
<% } %>