asp.net中Repeater中嵌套Repeater来显示跟外层Repeater数据相关的其他信息

简介:         在实际开发中,比如在统一权限管理系统中,我们预先定义了一些列角色,我们点击每一个角色,进入一个应用系统列表,我们要知道每个应用系统中,该角色已经拥有多少菜单访问权限,我们就可以...

        在实际开发中,比如在统一权限管理系统中,我们预先定义了一些列角色,我们点击每一个角色,进入一个应用系统列表,我们要知道每个应用系统中,该角色已经拥有多少菜单访问权限,我们就可以通过Repeater中嵌套Repeater来显示这些信息,如下图所示:


||

||


||

||


主要代码如下:

 <table id="table1" class="grid" singleselect="true">
                <thead>
                    <tr>
                        <td style="width: 40px; text-align: left;">
                            <label id="checkAllOff" onclick="CheckAllLine()" title="全选">
                                 </label>
                        </td>
                        <td style="text-align: center;">应用系统名称
                        </td>
                        <td style="text-align: center;">应用系统地址
                        </td>
                        <td style="text-align: center;">角色权限分配情况
                        </td>
                    </tr>
                </thead>
                <tbody>
                    <asp:Repeater ID="rp_Item" runat="server" OnItemDataBound="rp_Item_ItemDataBound">
                        <ItemTemplate>
                            <tr>
                                <td style="width: 40px; text-align: left;">
                                    <input type="checkbox" value="<%#Eval("System_ID")%>|<%#Eval("System_Name")%>" name="checkbox" />
                                </td>
                                <td style="text-align: center;">
                                    <%#Eval("System_Name")%>
                                </td>
                                <td style="text-align: center;">
                                    <%#Eval("System_Url")%>
                                </td>
                                <td style="text-align: center;">
                                    <asp:Repeater ID="rp_Use" runat="server">
                                        <ItemTemplate>
                                            <%#((AT.Web.ATBase.SysRole.cMsg)Container.DataItem).msg %>
                                        </ItemTemplate>
                                    </asp:Repeater>
                                </td>
                            </tr>
                        </ItemTemplate>
                        <FooterTemplate>
                            <% if (rp_Item != null)
                               {
                                   if (rp_Item.Items.Count == 0)
                                   {
                                       Response.Write("<tr><td colspan='4' style='color:red;text-align:center'>没有找到您要的相关数据!</td></tr>");
                                   }
                               } %>
                        </FooterTemplate>
                    </asp:Repeater>
                </tbody>
            </table>

 public string _Roles_Name;
        public string _key;
        private AT_System_IDAO system_idao = new AT_System_Dal();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!base.IsPostBack)
            {
                this._Roles_Name = base.Server.UrlDecode(base.Request["Roles_Name"]);
                this._key = base.Request["key"];
                this.InitData();
            }
        }

        /// <summary>
        /// 初始化绑定列表数据
        /// </summary>
        private void InitData()
        {
            DataTable dt = this.system_idao.GetApplicationList();
            ControlBindHelper.BindRepeaterList(dt, this.rp_Item);
        }

        protected void rp_Item_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rpt2 = (System.Web.UI.WebControls.Repeater)e.Item.FindControl("rp_Use");
                DataRowView rowv = (DataRowView)e.Item.DataItem;//找到外层Repeater关联的数据项  
                string systemId = rowv["System_ID"].ToString();
                DataTable dtList = this.system_idao.GetMenuBindBySystemId(systemId);
                DataTable dtRoleRight = this.system_idao.InitRoleRight(this._key, systemId);
                string msg = "已分配<font color='blue'>" + dtRoleRight.Rows.Count + "</font>/共<font color='red'>" + dtList.Rows.Count + "</font>个菜单!";
                List<cMsg> result = new List<cMsg>();
                cMsg item = new cMsg();
                item.msg = msg;
                result.Add(item);

                if (result != null)
                {
                    rpt2.DataSource = result;
                    rpt2.DataBind();
                }
            }
        }



相关文章
|
1月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
|
8月前
|
开发框架 JSON .NET
ASP.NET Core 自定义配置警告信息
自定义配置警告信息需要在 startup 类中的 ConfigureService 方法中进行配置示例: // 注册 控制器服务 services.AddControllers(configure: setup => { setup.ReturnHttpNotAcceptable = true; ...
54 0
|
12天前
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
24 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
|
1月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
36 0
|
1月前
|
存储 测试技术 计算机视觉
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
|
1月前
|
SQL 数据库
使用ADO.NET查询和操作数据
使用ADO.NET查询和操作数据
|
1月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
86 0
|
1月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
48 0
|
1月前
|
Oracle 关系型数据库 数据管理
.NET医院检验系统LIS源码,使用了oracle数据库,保证数据的隔离和安全性
LIS系统实现了实验室人力资源管理、标本管理、日常事务管理、网络管理、检验数据管理(采集、传输、处理、输出、发布)、报表管理过程的自动化,使实验室的操作人员和管理者从繁杂的手工劳作中解放出来,提高了检验人员的工作效率和效益,降低了劳动成本和差错发生率。
|
8月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
65 0