【发布时间】:2013-04-06 10:16:46
【问题描述】:
我是 kendo UI 实现的新手,我正在寻找一种方法来创建带有复选框的列表视图,第一个复选框是所有选项,如果选中,则选择列表视图中的所有项目。我创建了一个模板,允许我向项目添加复选框,但我需要在所有数据之上添加一个 ALL 复选框。这是我到目前为止所做的工作,下面(截图)是我想要实现的目标
【问题讨论】:
标签: jquery jquery-plugins kendo-ui
我是 kendo UI 实现的新手,我正在寻找一种方法来创建带有复选框的列表视图,第一个复选框是所有选项,如果选中,则选择列表视图中的所有项目。我创建了一个模板,允许我向项目添加复选框,但我需要在所有数据之上添加一个 ALL 复选框。这是我到目前为止所做的工作,下面(截图)是我想要实现的目标
【问题讨论】:
标签: jquery jquery-plugins kendo-ui
您的代码如下所示: 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();
}
});
});
//更新
获取复选框值:
确保您的列表被 "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
【讨论】:
ID of Ikura1 = "Ikura1_ID",ID of Ikura3 = "Ikura3_ID":<input type="checkbox" name="chkValue" value="Ikura1" class="click Ikura1_ID" /> <input type="checkbox" name="chkValue" value="Ikura1" class="click Ikura1_ID" /> <input type="checkbox" name="chkValue" value="Ikura3" class="click Ikura3_ID" /> <input type="checkbox" name="chkValue" value="Ikura3" class="click Ikura3_ID" /> 如果你想检查所有Ikura3,你只需这样做:$('.Ikura3_ID ').attr('checked','checked');
$(document).ready(function ()" 部分在哪里?它不在<script> 标签内。你能说清楚吗?请通过editing (changing) your answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来像是今天写的)。
我认为您正在寻找树视图。查看 Kendo 的演示:
【讨论】: