亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

實現CheckBox的三種選中狀態(全選、半選、不選)在GridView中模擬樹形的功能

2019-11-17 01:52:35
字體:
來源:轉載
供稿:網友

實現CheckBox的三種選中狀態(全選、半選、不選)在GridView中模擬樹形的功能

度娘了很多帖子,只說三種狀態要用圖片替換來做,但沒找到有用的例子,被逼自己寫了一個

三方控件肯定是很多的,如jstree,可以直接用

由于公司的UDS限制,不能上傳圖片,只能文字說明了。

就是要在gridview中實現如下效果:一級、二級因為三級沒有全部選中而顯示半選狀態

?一級
?二級
三級1
三級2

js↓

$(function(){        BindCheckNode();        $("span[name^='lblCheck']").click(checkBoxClick);     });function checkBoxClick()     {        var isChecked = $(this).attr("class") == "default" ? "checked"  : "default";        $(this).attr("class",isChecked);        //同步checkbox        $(this).next().children().eq(0).attr("checked",isChecked!="default");          var trNode = $(this).parent().parent();                childChange(trNode,isChecked);        parentChange(trNode,isChecked);      }//數據綁定時,對選中狀態的節點做變更,如果有一個子節點沒有選中,則為半選中狀態       function BindCheckNode()       {           //判斷選中狀態的節點的子節點是否全部選中,           $("span[name^='lblCheck']").each(function(){                if($(this).attr("class")=="checked")                {                    var curNode = this.parentNode.parentNode;                    if(!CheckAll(curNode))                    {                        $(this).attr("class","checkHalf");                    }                 }            });       }                     //選中狀態判斷       function CheckAll(curNode)        {         var level = parseInt($(curNode).attr("level"));         var id = $(curNode).attr("id");         var nextNode = $(curNode).next();         while (nextNode != null && parseInt($(nextNode).attr("level")) > level) {            //每個節點都要循環它的所有子節點,判斷是否選擇             var nextCheck=$(nextNode).children().eq(0).children("span").eq(1);              if ($(nextCheck).attr("class") == "default") {                 return false;                }             nextNode = $(nextNode).next();         }         return true;      }          //checkbox點擊后影響子節點     function childChange(curNode,className)     {        var level = parseInt($(curNode).attr("level"));        var nextNode = $(curNode).next();                //循環子節點        while(nextNode!=null && parseInt($(nextNode).attr("level") ) > level)        {            var nextCheck=$(nextNode).children().eq(0).children("span:eq(1)");             $(nextCheck).attr("class",className);            $(nextCheck).next().children().eq(0).attr("checked",className!="default");               nextNode=$(nextNode).next();          }      }          //checkbox點擊后影響父節點     function parentChange(curNode, className)     {        var pid = $(curNode).attr("pid");        var parentNode = $("#"+pid);        if(!$(parentNode).attr("pid"))            return false;                var parentSpanCheck=$(parentNode).children().eq(0).children("span").eq(1);        var childList = $("tr[pid='"+pid+"']");        var flag = false;        var tempNode;        $.each(childList, function(i,item){            tempNode = $(item).children().eq(0).children("span").eq(1);            if($(tempNode).attr("class") != className)           {                flag = true;                 return;           }        });        if(flag)        {            $(parentSpanCheck).attr("class", "checkHalf");        }         else if(!flag && className == "checked")        {             $(parentSpanCheck).attr("class", "checked");        }        else        {             $(parentSpanCheck).attr("class", "default");        }        var parentSpanCheckClass=$(parentSpanCheck).attr("class");        $(parentSpanCheck).next().children().eq(0).attr("checked",parentSpanCheckClass!="default");           if(pid != "0")            changeParentState(parentNode, className);     }
View Code

CSS↓ 主要是背景圖的移動,圖片排列方式為 [全選][未選][半選]

 <style type="text/css">        .checked {background-position-x: 0px;}        .checkHalf{background-position-x: 23px;}        .default{background-position-x: 46px;}    </style>
View Code

C#前臺 ↓ 已將多余的東西刪掉,gridview中只有一列,跟上面的table相似,lbl_Space用來增加縮進的,保留原始的checkbox,因為在保存的時候需要遍歷整個gridview,不管是后臺還是js中修改span的class屬性,遍歷gridview的時候是獲取不到的

<asp:GridView ID="dgResource" OnRowDataBound="dgResource_RowDataBound" DataKeyNames="ResourceID" runat="server" AutoGenerateColumns="False">                        <Columns>                            <asp:TemplateField>                                <HeaderStyle Wrap="False"></HeaderStyle>                                <ItemStyle Wrap="False"></ItemStyle>                                <ItemTemplate>                                    <asp:Label runat="server" ID="lbl_Space" ForeColor="#f5fbff" Text='<%# GetSpaceNameFromLevel(DataBinder.Eval(Container, "DataItem.NameValues[Level]").ToString()) %>'>                                    </asp:Label>                                    <span id="lblCheck" name="lblCheck" runat="server" class="default" style="width: 23px;                                        height: 25px; background-image: url(../../Common/Images/Icons/checkboxButton.jpg);">                                    </span>                                   <div style="display:none;">                                    <asp:CheckBox runat="server" ID="chk_Query"></asp:CheckBox>                                   </div>                                      <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ResourceName") %>'></asp:Label>                                    <asp:HiddenField ID="hfdPID" runat="server" Value='<%# Eval("ParentResourceID") %>' />                <asp:HiddenField ID="hfdLevel" runat="server" Value='<%# Eval("NameValues[Level]") %>' />                                </ItemTemplate>                            </asp:TemplateField>                        </Columns>                    </asp:GridView>
View Code

.net ↓

PRotected void dgResource_RowDataBound(object sender, GridViewRowEventArgs e)        {            if (e.Row.RowType == DataControlRowType.DataRow)            {                string id = ParamUtil.getstring(dgResource.DataKeys[e.Row.RowIndex]["ResourceID"]);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一区二区在线视频| 日韩av免费在线看| 亚洲国产精品久久久久秋霞蜜臀| 精品久久久视频| 国产精品美腿一区在线看| 欧美理论电影在线播放| 九九热视频这里只有精品| 欧美精品免费在线观看| 日韩激情av在线免费观看| 国产精品高精视频免费| 欧美香蕉大胸在线视频观看| 国产一区二区三区视频在线观看| 中文字幕亚洲字幕| 在线看日韩欧美| 国产午夜精品理论片a级探花| 欧美日本在线视频中文字字幕| 欧美日韩国产中文精品字幕自在自线| 26uuu亚洲伊人春色| 国产一区二区三区视频在线观看| 国产精品免费久久久久久| 亚洲一区二区三区视频播放| 黄色精品一区二区| 欧美成人网在线| 国产视频一区在线| 久久久成人精品视频| 亚洲成人激情在线| 97精品一区二区视频在线观看| 日本不卡高字幕在线2019| 日韩av在线免播放器| 亚洲综合色激情五月| 国产一区二区三区在线观看视频| 欧美俄罗斯乱妇| 97人人模人人爽人人喊中文字| 欧美精品亚州精品| 欧美精品www| 欧美大片在线免费观看| 色爱av美腿丝袜综合粉嫩av| 亚洲国内高清视频| 国产精品主播视频| 成人黄色av网| 欧美日韩免费在线| 人体精品一二三区| 色av中文字幕一区| 午夜欧美不卡精品aaaaa| 日韩av在线免费| 国产精品亚洲一区二区三区| 亚洲欧美国产另类| 久久精品亚洲精品| 97色在线视频观看| 中文日韩在线观看| 欧美激情视频一区| 亚洲女人天堂成人av在线| 亚洲精品福利视频| 韩国三级电影久久久久久| 亚洲精品久久久久久下一站| 国产精品99久久久久久www| 国产精品免费久久久久久| 欧美成人手机在线| 日本欧美一二三区| 日韩精品欧美激情| 欧美日韩另类在线| 色噜噜狠狠狠综合曰曰曰| 久久91精品国产91久久久| 欧美剧在线观看| 国产精品久久久久久久av大片| 久久99国产综合精品女同| 久久影视电视剧免费网站清宫辞电视| 欧美日韩中文字幕在线| 国产精品久久久久久搜索| 91国产中文字幕| 久久韩国免费视频| 成人激情在线播放| 亚洲精品一二区| 欧美视频免费在线| 清纯唯美亚洲激情| 久久不射电影网| 在线日韩中文字幕| 欧美日韩美女视频| 日韩久久免费电影| 国产成人精品日本亚洲| 欧美久久精品一级黑人c片| 欧美第一淫aaasss性| 日韩欧美国产网站| 日韩av资源在线播放| 精品无码久久久久久国产| 欧美综合在线第二页| 欧美性黄网官网| 日韩美女在线看| 成人国产精品久久久| 欧美精品免费在线观看| 日韩精品在线观看视频| 国产精品电影久久久久电影网| 国产精品一区二区在线| 国产精品扒开腿做爽爽爽男男| 久久成人免费视频| 国产精品91久久| 51精品国产黑色丝袜高跟鞋| 中文字幕无线精品亚洲乱码一区| 国产精品入口免费视| 欧美激情亚洲一区| 久久久精品亚洲| 91精品国产九九九久久久亚洲| 成人h视频在线观看播放| 91av视频在线| 亚洲午夜激情免费视频| 韩国欧美亚洲国产| 在线成人免费网站| 日本成人免费在线| 日本久久久久亚洲中字幕| 久久九九免费视频| 欧美在线视频免费| xxxxx成人.com| 91沈先生在线观看| 一区二区在线视频播放| 欧美极品少妇xxxxⅹ裸体艺术| 中文字幕免费精品一区| 亚洲第一免费播放区| 国产精品91视频| 亚洲精品白浆高清久久久久久| 午夜精品久久久99热福利| 精品人伦一区二区三区蜜桃免费| 91亚洲国产成人精品性色| 欧美性xxxxxxxxx| 久久精品国产一区| 日韩美女激情视频| 色天天综合狠狠色| 国产精品久久久久久久午夜| 欧美日本黄视频| 欧美丝袜一区二区三区| 日韩在线视频观看正片免费网站| 亚洲第一区第一页| 自拍偷拍亚洲欧美| 国产精品久久久久久av下载红粉| 国产精品黄色影片导航在线观看| 91精品国产高清自在线| 欧美性精品220| 一区二区三区久久精品| 日韩中文字幕免费| 久久久久久午夜| 日韩视频―中文字幕| 狠狠色香婷婷久久亚洲精品| 一区二区三区四区在线观看视频| 国产精品网红直播| 国产成+人+综合+亚洲欧美丁香花| 欧美午夜片欧美片在线观看| 欧美俄罗斯性视频| 欧美性猛交xxxx乱大交| 欧美性生交大片免网| 自拍偷拍免费精品| 综合激情国产一区| 国产精品国产福利国产秒拍| 欧美中文在线视频| 国产精品jizz在线观看麻豆| 国产精品黄色影片导航在线观看| 欧美成在线观看| 日韩有码在线观看| 最近2019中文字幕在线高清| 成人黄色免费看| 亚洲国产精品久久精品怡红院| 亚洲图片欧美日产| 国产精品丝袜久久久久久不卡| 亚洲综合在线做性| 欧美性xxxx极品hd欧美风情| 91av在线免费观看|