Как скрыть и отобразить определенный столбец повторителя, используя код позади?
У меня есть повторитель, на его событие 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 при скрытии и создании функции, которая будет показывать ее, когда вы хотите.