Как скрыть и отобразить определенный столбец повторителя, используя код позади?

У меня есть повторитель, на его событие item_command я связываю другой повторитель. И я хочу показать данные в соответствии с ролью во втором ретрансляторе. Для этого я хочу скрыть и показать какой-то столбец в соответствии с ролью пользователей. как мы можем сделать это с помощью кода позади. Заранее спасибо. Мой код

<table id="table1" class="yui" cellpadding="0" cellspacing="0">
                <thead>
                    <tr>
                        <th>
                            <a href='#' title="Click Header to Sort">EmpID #</a>
                        </th>
                        <th>Edit</th>
                    </tr>
                </thead>
                <tbody>
                    <asp:Repeater ID="Repaddressorbbl" runat="server" OnItemCommand="Repaddressorbbl_ItemCommand">
                        <ItemTemplate>
                           <tr id="gh" style="cursor: pointer" onclick="Select(this);">
                                <td style="text-align: center;">
                                    <%#Eval("empid")%>
                                </td>  
                                <td>
                                    <asp:LinkButton ID="lknumber" runat="server" Text="Edit" CommandName="searchbybbloraddress" />
                                </td>                             
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                </tbody>
                <tfoot>
                </tfoot>
            </table>

 protected void Repaddressorbbl_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "searchbybbloraddress")
        {
          bind_rep2(); 
        }
    }

2 ответа

Решение

Если вы хотите связать данные второго повторителя из ItemCommand в вашем коде, у вас есть два варианта.

Вы можете изменить набор данных, который вы указали в качестве источника данных второго повторителя, и установить для конфиденциальных данных пустую строку или **.

Другой вариант, который у вас есть, это добавить логическое свойство IsVisibleToUser к вашему набору данных и в вашем втором повторителе привязать свойство Visible к этому свойству.

Вы можете легко изменить данные, передаваемые вашему источнику данных, с помощью запроса Linq, который создает анонимный объект.

Что-то вроде:

Repeater2.DataSource = from d in MyData
                       select new
{
    FirstName = d.FirstName,
    LastName = d.LastName,
    Salary = d.Salary,
    IsVisibleToUser = CurrentUser.IsInRole(...)
}

Простой способ - использовать javascript и использовать Display:none при скрытии и создании функции, которая будет показывать ее, когда вы хотите.

Другие вопросы по тегам