根据用户权限隐藏Repeater列

Cod*_*r 2 4 c# asp.net repeater html-table

有人可以向我解释如何根据用户权限隐藏转发器列.

说我有:

<asp:Repeater ID="repeater" runat="server>
  <HeaderTemplate>
    <table id="table_id">
      <tr>
        <th>Name</th>
        <th>Secret Info</th>
      <tr>
  </HeaderTemplate>
  <ItemTemplate>
      <tr>
        <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td>
        <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' /></td>
      <tr>
  <ItemTemplate>
  <AlternatingItemTemplate>
      <tr>
        <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>' /></td>
        <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("SecretInfo") %>' /></td>
      <tr>
  <AlternatingItemTemplate>
  <FooterTemplate>
    </table>
  </FooterTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

我如何仅向登录用户显示"秘密信息"列?

Jef*_*nal 6

您可以<td>有条件地渲染元素.这个简化的示例假设您有一个页面级属性,指示用户是否已登录(您将在标题模板中执行相同的操作):

<asp:Repeater ID="repeater" runat="server>
    <ItemTemplate>
        <tr>
            <td><asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'  /></td>
            <% if (this.UserIsLoggedOn) { %>
            <td><asp:Label ID="Label2" runat="server" Text='<%# Eval("SecretInfo") %>' /></td>
            <% } %>
        <tr>
    </ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)