• Repeater 内嵌 CheckBoxList 的同时绑定


    Repeater 内嵌 CheckBoxList 显示年级及其下班级列表

    页面HTML部分
    -------------
    <tr>
     <td>年级班级列表:</td>
     <td>
     <asp:Repeater ID="repeater_GradeClass" runat="server" >
       <ItemTemplate>
          <table>
             <tr>
                <td>
                  <asp:Label ID="lbl_Grade" runat="server" style="color:Red;"
                       Text='<%# Eval("GradeName") %>'></asp:Label>
                </td>
             </tr>
             <tr>
                <td>
                  <asp:CheckBoxList ID="chklist_Classes" runat="server" RepeatDirection="horizontal"                                                  DataSource='<%# GetClassesByGradeID(Convert.ToString(Eval("GradeID"))) %>'
                      DataTextField='<%# GetClassesByGradeID(Convert.ToString(Eval("GradeID"))).Columns["ClassName"].ToString() %>'
                      DataValueField='<%# GetClassesByGradeID(Convert.ToString(Eval("GradeID"))).Columns["ClassID"].ToString()  %>'
                  >
                  </asp:CheckBoxList>
                </td>
              </tr>
           </table>
        </ItemTemplate>
     </asp:Repeater>
     </td>
    </tr>

    页面cs部分
    ------------
        #region 绑定年级信息 可在Page_Load时 调用该方法 进行页面绑定
        private void BindRepeaterGateway()
        {
            //...相关数据库访问省略
            DataSet ds = GetDataSetGrade();//两个字段 GradeID,GradeName
            if ((ds != null) && (ds.Tables[0].Rows.Count > 0))
            {
                DataSet ds1 = GetDataSetClass();//三个字段 GradeID,ClassID,ClassName
                ViewState.Add("dsClass", ds1);

                this.repeater_GradeClass.DataSource = ds.Tables[0];
                this.repeater_GradeClass.DataBind();
               
            } 
        }
        #endregion

        #region 根据年级GradeID 得到其下的班级Class
        protected DataTable GetRegItemsByGatewayID(string strGradeID)
        {
            if (ViewState["dsClass"] != null)
            {
                DataView dv = ((DataSet)ViewState["dsClass"]).Tables[0].DefaultView;
                dv.RowFilter = " GradeID = "+strGradeID+" ";
                DataTable dt = dv.ToTable();
                return dt;
            }
            else
            {
                return null;
            }
        }
        #endregion


           //取得选中的年级值
            string items = "";
            for (int i = 0; i < this.repeater_GradeClass.Items.Count; i++)
            {
                CheckBoxList chklist = (CheckBoxList)this.repeater_GradeClass.Items[i].FindControl("chklist_Classes");
                for (int j = 0; j < chklist.Items.Count; j++)
                {
                    if (chklist.Items[j].Selected)
                        items += "," + chklist.Items[j].Value;
                }
            }
            if (items.Length > 0)
                items = items.Substring(1);

     

  • 相关阅读:
    ALV 填值返回更新屏幕
    alv 的几种形式 和 函数
    JS 截取字符串的空格
    codeigniter 轻量级架构知识初习
    之前的博客挂掉了
    在服务器上运行php文件来执行操作
    浏览器判断
    php 汉字判断
    web 套打方法实现打印机功能
    WIN8
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1255474.html
Copyright © 2020-2023  润新知