【问题标题】:kendo listView with checkbox along with select all checkbox option带有复选框的剑道列表视图以及选择所有复选框选项
【发布时间】:2013-04-06 10:16:46
【问题描述】:

我是 kendo UI 实现的新手,我正在寻找一种方法来创建带有复选框的列表视图,第一个复选框是所有选项,如果选中,则选择列表视图中的所有项目。我创建了一个模板,允许我向项目添加复选框,但我需要在所有数据之上添加一个 ALL 复选框。这是我到目前为止所做的工作,下面(截图)是我想要实现的目标

_http://jsfiddle.net/Archie/w6jsZ/

【问题讨论】:

    标签: jquery jquery-plugins kendo-ui


    【解决方案1】:

    您的代码如下所示: http://jsfiddle.net/Archie/w6jsZ/

    <div style="width:250px;height:350px;overflow-y:scroll;">
        <div>
            <input type="checkbox" id="checkall" class="click" />
            <span class="checkbox">All</span>
        </div>
        <div id="listView" class="k-listview" >
        </div>
    </div>
    <script type="text/x-kendo-tmpl" id="myTemplate">
    
        <div class="item click" data="${ProductID}">
            <input type="checkbox" class="click" />
            <span class="checkbox">#:ProductName#</span>
        </div>
    </script>
    
    $(document).ready(function () {
    
        function checkboxEventBinding()
        {
            $('#checkall').bind('click',function(e){
                if(this.checked)
                {
                    $('.item.click input').attr('checked','checked');
                }
                else
                {
                    $('.item.click input').removeAttr('checked');
                }
            })
        }
    
        var dataSource = new kendo.data.DataSource({
                            transport: {
                                read: {
                                    url: "http://demos.kendoui.com/service/Products",
                                    dataType: "jsonp"
                                }
                            }
                        });
    
        $("#listView").kendoListView({
            dataSource: dataSource,
            template: kendo.template($("#myTemplate").html()),
            headertemplate:"<div class='item click' id='headerTemp' data='*'>       <input type='checkbox' class='click' /><span class='checkbox'>All</span></div>",
            dataBound: function(e) {
                checkboxEventBinding();
            }
        });
    });
    
    1. 在 kendo-list 模板之前插入一个复选框(用于全选)
    2. 当用户点击 Check-all Input 时,其他输入也会被检查。
    3. 在 kendo-list 重新绑定数据后重新绑定您的事件。

    //更新

    获取复选框值:

    确保您的列表被 "form" 标签包裹

    <form id="frmChk">
        <div id="listView" class="k-listview" >
        </div>
    </form>
    

    所有input 标签都具有相同的名称

    <script type="text/x-kendo-tmpl" id="myTemplate">
        <div class="item click"  data="${ProductID}">
            <input type="checkbox" name="chkValue" value="${ProductID}"  class="click" />
            <span class="checkbox">#:ProductName#</span>
        </div>
    </script>
    

    去获取值。你可以使用 jQuery 的序列化方法:

    <script>
        function getCheckedBoxValue()
        {
            $("#frmChk").serialize();
        }
    </script>
    

    如果您的输入是

    <input type="checkbox" name="chkValue" value="Ikura1" class="click" />
    <input type="checkbox" name="chkValue" value="Ikura2" class="click" />
    <input type="checkbox" name="chkValue" value="Ikura3" class="click" />
    

    当你调用getCheckedBoxValue时,结果会是这样的:

    chkValue=Ikura1,Ikura2,Ikura3
    

    【讨论】:

    • 您好,感谢您,帮了很多忙……一点小帮助。我如何获得那些被检查的值??
    • 哇非常感谢 :) 假设我想动态设置值,即通过 jquery 仅检查某些复选框,例如仅用于值 Ikura1,Ikura3 ??
    • 每个复选框都有自己的ID吧?现在我将它们标记为“类” 例如:您的列表视图可能是这样的:假设:ID of Ikura1 = "Ikura1_ID",ID of Ikura3 = "Ikura3_ID"&lt;input type="checkbox" name="chkValue" value="Ikura1" class="click Ikura1_ID" /&gt; &lt;input type="checkbox" name="chkValue" value="Ikura1" class="click Ikura1_ID" /&gt; &lt;input type="checkbox" name="chkValue" value="Ikura3" class="click Ikura3_ID" /&gt; &lt;input type="checkbox" name="chkValue" value="Ikura3" class="click Ikura3_ID" /&gt; 如果你想检查所有Ikura3,你只需这样做:$('.Ikura3_ID ').attr('checked','checked');
    • “您的代码看起来像这样” 是什么意思?请通过editing (changing) your question/answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来像是今天写的)。
    • $(document).ready(function ()" 部分在哪里?它不在&lt;script&gt; 标签内。你能说清楚吗?请通过editing (changing) your answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来像是今天写的)。
    【解决方案2】:

    我认为您正在寻找树视图。查看 Kendo 的演示:

    Checkboxes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多