如何使用代码隐藏和显示特定的转发器列?

时间:2011-11-15 11:25:52

标签: asp.net repeater itemcommand

我有一个转发器,在它的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 :(得分:0)

简单的方法是使用javascript并在隐藏时使用Display:none,并在需要时显示创建功能。

答案 1 :(得分:0)

如果你想在代码后面的ItemCommand中对第二个转发器进行数据绑定,你有两个选择。

您可以修改设置为第二个转发器的DataSource的数据集,并将敏感数据设置为空字符串或 * *。

您拥有的另一个选项是向数据集添加IsVisibleToUser布尔属性,在第二个转发器中将Visible属性绑定到此属性。

您可以使用生成匿名对象的Linq查询轻松修改为DataSource提供的数据。

类似的东西:

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