现在的位置: 首页 > 综合 > 正文

Repeater控件嵌套使用

2013年08月27日 ⁄ 综合 ⁄ 共 2114字 ⁄ 字号 评论关闭

概述:在项目中做权限的时候使用到了Repeater的嵌套(像for循环嵌套),如图:

这里的功能页面和功能权限都是通过repeater遍历出来的,表示的是一个功能页面中包含多个功能权限,是个一对多的关系。具体的权限设计这里不说明,主要是说如何进行repeater嵌套的。具体步骤如下:

 

第一步:定义俩个方法,一个是绑定功能页面的方法,第二个是根据功能页面id查询出对应功能权限的方法。代码:

//定义一个绑定repPage的方法

private void BindRepeaterPage()

{

//调用方法得到数据

DataTable dt = 调用方法省略;

repPage.DataSource = dt;

repPage.DataBind();

}

//定义一个绑定repPower的方法,传入功能页面的id

protected DataTable BindREpeaterPower(string ss_id)

{

//调用方法得到数据

DataTable dt =调用方法省略;

return dt

}

 

第二步:定义两个嵌套的repeater,如上代码所示,repPage表示功能页面,还有一个是在之后页面上定义的repPower,代码:

<table width="100%">

                        <tr>

                            <td width="20%">

                                功能页面

                            </td>

                            <td>

                                功能权限

                            </td>

                        </tr>

                        <asp:Repeater ID="repPage" runat="server">

                            <ItemTemplate>

                                <tr>

                                    <td width="20%">

                                        <%# Eval("功能页面名称") %>

                                    </td>

                                    <td>

                                        <table width="100%">

                                            <tr>

                                                <asp:Repeater ID="repPowers" runat="server" DataSource='<%# BindREpeaterPower(功能页面id) %>'>

                                                    <ItemTemplate>

                                                        <td>

                                                            <input type="checkbox" name="power" /><%# Eval("功能权限名称") %>

                                                        </td>                                                  </ItemTemplate>

                                                </asp:Repeater>

                                            </tr>

                                        </table>

                                    </td>

                                </tr>

                            </ItemTemplate>

                        </asp:Repeater>

                    </table>

 

注:对于遍历出的checkedbox的选择后的值可以使用js加一个hidfield来获得,这里就不详细说明了,主要说明repeater的套用。

抱歉!评论已关闭.