• DataList 嵌套绑定CheckBoxList [记录, 以免忘记哈.]


    Code

     

     .cs

     1//绑定datalist 
     2protected void BindMenu()
     3{
     4  ICollection<Org_SysMenusRecords> fMenu = org_first.getMenu();
     5    Menu.DataSource = fMenu;
     6    Menu.DataKeyField = "MenuNo";
     7    Menu.DataBind();
     8}

     9//ItemDataBound 事件中绑定checkboxlist
    10rotected void Menu_ItemDataBound(object sender, DataListItemEventArgs e)
    11{//purview list
    12    string parent = Menu.DataKeys[e.Item.ItemIndex].ToString();
    13    BindPurview(parent, (CheckBoxList)e.Item.FindControl("two_menu"));
    14}

    15
    16protected void BindPurview(string parent, CheckBoxList bb)
    17{
    18    ICollection<Org_SysSecMenusRecords> sMenu = org_second.getMenuByParent(parent);
    19    if (sMenu.Count > 0)
    20    {
    21        bb.DataSource = sMenu;
    22        bb.DataTextField = "ChildMenuName";
    23        bb.DataValueField = "ChildMenuNo";
    24        bb.DataBind();
    25    }

    26}

    27
    28//绑定 checkboxlist的值
    29protected void BindPurviewSelected(int argid)
    30{
    31    employee.Value = argid.ToString();
    32    Org_UserRecords item = org_employees.SelectOrg_UserRecords(argid);
    33    //string[] purview = item.purview.Split(new char[] { ',' });
    34    string purview = item.purview;
    35    foreach (DataListItem oDataListItem in Menu.Items)
    36    {//注意这里. ListItem
    37        foreach (ListItem oListItem in ((CheckBoxList)oDataListItem.FindControl("two_menu")).Items)
    38        {
    39            if (purview.Contains(oListItem.Value)) {
    40                oListItem.Selected = true;
    41                ((CheckBox)oDataListItem.FindControl("opt")).Checked = true;
    42            }

    43        }

    44    }

    45}
     
    46
    47 
    48
    49 //得到checkboxlist的值
    50protected void purviewEdit()
    51{
    52    if (string.IsNullOrEmpty(employee.Value))
    53        return;
    54
    55    string resultValue = string.Empty;
    56    foreach (DataListItem oDataListItem in Menu.Items)
    57    {
    58        if (((CheckBox)oDataListItem.FindControl("opt")).Checked)
    59        {
    60            foreach (ListItem item in ((CheckBoxList)oDataListItem.FindControl("two_menu")).Items)
    61            {
    62                if (item.Selected)
    63                    resultValue += item.Value + ",";
    64            }

    65        }

    66    }

    67    //resultValue.TrimEnd(new char[] { ',' });
    68    if (!org_employees.UpdateOrg_UserRecords("Org_UserRecords.purview", resultValue.TrimEnd(new char[] ',' }), int.Parse(employee.Value)))
    69        lblRurviewError.InnerHtml = "An update error about purview";
    70}

    71


     js 全选 [没有反选]

    //根据opt判断全选  
    //
    注意获取父级node 然后判断全选
    //
    <javascript>
    function onCheck(obj){
        
    var nextNode = obj.parentNode;
        
    var cb = nextNode.getElementsByTagName("input");
        
        
    for(var i=0;i<cb.length;i++){
            
    if(cb[i].type == "checkbox"){
                
    if(obj.checked){
                    cb[i].checked 
    = true;
                }

                
    else {
                    cb[i].checked 
    = false;
                }

            }

        }
        
    }


    // haha . 很喜欢这个效果.
    function resetOpt(obj) {
        
    var e = obj.getElementsByTagName("input");
        
    var choose = false;
        
    for(var i=0;i<e.length;i++)
        
    {
            
    if(e[i].type == "checkbox")
            
    {
                
    if(e[i].checked){
                    choose 
    = true;
                }

            }

        }

        
    if(choose){
            obj.parentNode.parentNode.getElementsByTagName(
    "input")[0].checked = true;
        }

        
    else {
            obj.parentNode.parentNode.getElementsByTagName(
    "input")[0].checked = false;
        }

    }

  • 相关阅读:
    目前博客园NB团队成员名单
    [征询意见]博客园准备组建在线培训团队
    [调查]园子里有哪些朋友在做开源项目
    都是百度惹的祸
    准备成立NBear开源项目团队—博客园NB团队
    [公告]欢迎各地.NET俱乐部负责人与我联系
    [公告]服务器搬迁
    VS 2005 文本编码小技巧
    Net Framework 2.0 事务处理
    ArgoUML 开源UML 建模工具
  • 原文地址:https://www.cnblogs.com/yuanchong/p/1422644.html
Copyright © 2020-2023  润新知