前台代码:

   <asp:Repeater ID="RepeaterScene" runat="server" OnItemDataBound="RepeaterList_ItemDataBound">
                  <ItemTemplate>
                    <tr>
                        <td class="bg_1" style="text-align: right; width: 75px; height: 36px;">
                            <%#Eval("ClassName") %>:
                        </td>
                        <asp:HiddenField ID="hideClassId" runat="server" Value='<%#Eval("ClassId") %>' />
                        <asp:Repeater ID="RepeaterClassScene" runat="server">
                        <ItemTemplate>
                        <td>
                            <asp:CheckBoxList ID="CheckBoxList1"  runat="server" RepeatDirection="Horizontal">
                            </asp:CheckBoxList>
                        </td>
                           </ItemTemplate>
                       </asp:Repeater>
                    </tr>
                    </ItemTemplate>
                   </asp:Repeater>

你要弄清楚,当绑定Repeater的数据源中没有值时,上面这些东西不显示在界面中,这样就可以做到添加数据后在前台动态显示。
有数据时,显示效果

后台代码:
  //显示所有景色类型

        private void BindScene()
        {     
            DataTable scene = new NJL.Bll.SceneTypeClass().GetScene(" where ParentId=0 and isshow=1");
            RepeaterScene.DataSource = scene;
            RepeaterScene.DataBind();
        }
// Repeater 的ItemDataBound 方法    
        protected void RepeaterList_ItemDataBound(object sender,RepeaterItemEventArgs e)
        { 
            if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
            {
                HiddenField hideClassId = (HiddenField)e.Item.FindControl("hideClassId");
              
                if(!string.IsNullOrEmpty(hideClassId.Value))
                {
                    Repeater relist = (Repeater)e.Item.FindControl("RepeaterClassScene");
    
                    string where =string.Format(" where isshow=1 and ParentId='{0}'",hideClassId.Value);
                    DataTable cla = new NJL.Bll.SceneTypeClass().GetScene(where);
                    relist.DataSource = cla;
                     relist.DataBind();
                  
                     CheckBoxList ck = (CheckBoxList)relist.Items[0].FindControl("CheckBoxList1");
                     ck.DataValueField = "ClassId";
                     ck.DataTextField = "ClassName";
                     ck.DataSource = cla;
                     ck.DataBind();                 
                }
            }
        }
//获取设置选中的类型  获取Repeater内嵌的控件CheckBoxList 需要遍历                
                    if(!string.IsNullOrEmpty(m.SceneType))
                    {
                        string[] follow = m.SceneType.Split(',');
                        for (int i = 0; i < RepeaterScene.Items.Count;i++ )
                        {
                            Repeater rep2 = (Repeater)RepeaterScene.Items[i].FindControl("RepeaterClassScene");
                            for (int j = 0; j < rep2.Items.Count;j++ )
                            {
                                CheckBoxList cbx = (CheckBoxList)rep2.Items[j].FindControl("CheckBoxList1");
                                foreach(ListItem item in cbx.Items)
                                {
                                    foreach(string s in follow)
                                    {
                                        if(item.Value==s)
                                        {
                                            item.Selected = true;
                                        }
                                    }
                                }
                            }
                        }
                    } //保存选中的景点类型
    //旅游景点类型
                string scenlist="";
                for (int s = 0; s < RepeaterScene.Items.Count;s++ )
                {
                    Repeater rep2 = (Repeater)RepeaterScene.Items[s].FindControl("RepeaterClassScene");
                    for (int x = 0; x < rep2.Items.Count;x++ )
                    {
                        CheckBoxList cbx = (CheckBoxList)rep2.Items[x].FindControl("CheckBoxList1");
                        foreach(ListItem item in cbx.Items)
                        {
                            if(item.Selected==true)
                            {
                                scenlist += item.Value + ",";
                            }
                        }
                    }
                }
 

Repeater嵌套Repeater并取得嵌套Repeater里面的控件的更多相关文章

  1. (ScrollViewer或者有滚动条的控件)嵌套一个(ScrollViewer或者有滚动条的控件)禁用里面的滚动条

    转自:http://blog.csdn.net/haylhf/article/details/8351203 后有改动 在C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里 ...

  2. FineUIMvc随笔 - 怎样在控件中嵌套 HTML

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 有网友在<FineUI总群1>问这么一个问题:怎么把 HTML 嵌套在控件中? 这是很多刚学习 FineU ...

  3. FineUIMvc随笔(2)怎样在控件中嵌套 HTML

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 有网友在<FineUI总群1>问这么一个问题:怎么把 HTML 嵌套在控件中? 这是很多刚学习 FineU ...

  4. Repeater 控件的嵌套使用

      Repeater 控件的嵌套使用   ItemDataBound:数据绑定的时候(正在进行时)发生,多用在Repeater控件嵌套,对子Repeater控件进行数据绑定及模板列中统计列的计算处理等 ...

  5. ASP.NET- 查找Repeater控件中嵌套的控件

    如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用Find ...

  6. 使用Repeater控件实现三层嵌套以及分页效果

    PS: 第一次用Repeater控件 记录一下 请忽略我的命名不规范  请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点 ====================最终效果图===== ...

  7. Repeater控件 ---表格展示数据

    简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repea ...

  8. Reapter控件的特殊使用:使用EVAL调取asp:Repeater里面绑定的值来进行判断 根据从数据库获取的数据进行判断 ,进而显示成想要的内容

    1.这个判断的过程你可以写在后台,如先在后台写一个public类型的方法:public bool CheckAduit(string code){ //根据你传入的code来判断,并返回true或者f ...

  9. asp控件Repeater运用

    双层repeater嵌套 <asp:Repeater ID="rpt_dataRepeatgroup" runat="server" OnItemData ...

随机推荐

  1. 单词(bzoj 3172)

    Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. Input 第一个一个整数N,表示有多少个单词,接下来N ...

  2. 浅析HTTP协议

    HTTP协议是什么 HTPP协议是一种网际层协议,HTTP协议是无状态的,HTTP协议对用户是透明的. 每一次HTTP请求都是一次事务,一个HTTP事务是由一条请求命令和一个响应结果组成的,HTTP通 ...

  3. python初学杂记

    python常用命令: 1.python 或者 python3  打开交互式python解释器 2.python hello.py   通过命令提示符运行python脚本 交互式python解释器常用 ...

  4. CSC321 神经网络语言模型 RNN-LSTM

    主要两个方面 Probabilistic modeling 概率建模,神经网络模型尝试去预测一个概率分布 Cross-entropy作为误差函数使得我们可以对于观测到的数据 给予较高的概率值 同时可以 ...

  5. Yii2的urlManager URL美化

    Yii1.*与Yii2中配置路由规则rules是几乎是一样的,但还是有细微的差别. 在Yii1.*中开启path路由规则直接使用 'urlFormat' => 'path', 但在Yii2中已经 ...

  6. 教你分分钟开发一个属于自己的python模块(一)——能够直接在浏览器打印的方法

    曾经,用惯了python print命令的人,惊叹于python语法的精简:后来,用过了tornado.django等web开发框架,不得不佩服当初开发这些框架的人们.于是,我们开始使用它们的框架== ...

  7. 前端Js跨域方法汇总—剪不断,理还乱,是跨域

    1.通过jsonp跨域2.通过修改document.domain来跨子域(iframe)3.隐藏的iframe+window.name跨域4.iframe+跨文档消息传递(XDM)5.跨域资源共享 C ...

  8. mysql数据库链接与创建

    有童鞋问到说,环境搭建好了,mysql也安装了,但是就是进不去数据库,也启动不了,一直报错,那么下面这边就说下如何用Navicat链接上创建的数据库 首先 1)在xshell里进入mysql,命令是: ...

  9. 【转】iOS学习之容易造成循环引用的三种场景

    ARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露.导致iOS对象无法按预期释放的一个无形杀手是——循环引用.循环引用可以简单理解为A引用了B,而B又引用了A,双方都同 ...

  10. jquery ui dialog autofocus 去掉默认第一个元素获取焦点

    经常在dialog窗口中第一个元素为日期控件时,打开窗口则会自动显示日期下拉框. 解决办法:在dialog的open事件中,设置父对象获得焦点. p1_dialog_seniorSearch.dial ...