Как скрыть и отобразить определенный столбец повторителя, используя код позади? - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть повторитель, для события 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 ]

0 голосов
/ 15 ноября 2011

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

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

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

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

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

Repeater2.DataSource = from d in MyData
                       select new
{
    FirstName = d.FirstName,
    LastName = d.LastName,
    Salary = d.Salary,
    IsVisibleToUser = CurrentUser.IsInRole(...)
}
0 голосов
/ 15 ноября 2011

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

...