设置加载页面时选中 Kendo Dropdowntree 中的所有复选框
Set all checkbox in Kendo Dropdowntree checked when load the page
我想创建 kendo 下拉树,当我加载页面时,所有的复选框都被选中。这是我的代码。
@(Html.Kendo().DropDownTree()
.AutoWidth(true)
.Name("dropdowntree")
.DataTextField("Name")
.DataValueField("Id")
.CheckAll(true)
.HtmlAttributes(new { style = "width: 100%" })
.Events(events => events.Change("onChange"))
.Filter(FilterType.Contains)
.AutoClose(false)
.Checkboxes(checkboxes => checkboxes
.Name("checkedFiles")
.CheckChildren(true)
)
.DataSource(dataSource => dataSource
.Read(read => read
.Action("GetName", "CheckBox")
)
)
)
我已经做了一些研究并尝试了解决方案,但 none 如果它们有效的话。例如,我尝试的是:
$(document).ready(function () {
$("#dropdowntree input.k-checkbox").prop("checked", true);
})
这个也不行:
$(document).ready(function () {
$("#dropdowntree").attr('checked', 'checked');
})
这是工作,但我需要设置值。我需要的是默认全部勾选,不需要设置值。
$(document).ready(function () {
var dropdowntree = $("#dropdowntree").data("kendoDropDownTree");
dropdowntree.value(["1","2","3","4","5","6","7"]);
})
除了所有这些,我还尝试了这个 link jquery set all checkbox checked 和其他解决方案中的解决方案。但还是不行。我真的需要一些建议。谢谢。
如果有人需要的话,我已经找到答案了。
首先在控制器中我获取所有 id 列表,然后我将列表更改为 json 中的字符串。
控制器代码:
public IActionResult CheckBoxDB()
{
List<string> parts = new List<string>();
GetId(parts);
ViewBag.All = parts;
var json = JsonConvert.SerializeObject(parts);
ViewBag.change = json;
return View();
}
private void GetId(List<string> parts)
{
List<DdlcheckBox> ddlcheckBoxes = new List<DdlcheckBox>();
ddlcheckBoxes = _context.DdlcheckBox.ToList();
foreach (var data in ddlcheckBoxes)
{
string id = data.Id.ToString();
parts.Add(id);
}
}
然后,在视图中,我在脚本中获取 ViewBag 值。
<script>
$(document).ready(function () {
var dropdowntree = $("#dropdowntree").data("kendoDropDownTree");
dropdowntree.value('@ViewBag.change');
});
</script>
谢谢。
我想创建 kendo 下拉树,当我加载页面时,所有的复选框都被选中。这是我的代码。
@(Html.Kendo().DropDownTree()
.AutoWidth(true)
.Name("dropdowntree")
.DataTextField("Name")
.DataValueField("Id")
.CheckAll(true)
.HtmlAttributes(new { style = "width: 100%" })
.Events(events => events.Change("onChange"))
.Filter(FilterType.Contains)
.AutoClose(false)
.Checkboxes(checkboxes => checkboxes
.Name("checkedFiles")
.CheckChildren(true)
)
.DataSource(dataSource => dataSource
.Read(read => read
.Action("GetName", "CheckBox")
)
)
)
我已经做了一些研究并尝试了解决方案,但 none 如果它们有效的话。例如,我尝试的是:
$(document).ready(function () {
$("#dropdowntree input.k-checkbox").prop("checked", true);
})
这个也不行:
$(document).ready(function () {
$("#dropdowntree").attr('checked', 'checked');
})
这是工作,但我需要设置值。我需要的是默认全部勾选,不需要设置值。
$(document).ready(function () {
var dropdowntree = $("#dropdowntree").data("kendoDropDownTree");
dropdowntree.value(["1","2","3","4","5","6","7"]);
})
除了所有这些,我还尝试了这个 link jquery set all checkbox checked 和其他解决方案中的解决方案。但还是不行。我真的需要一些建议。谢谢。
如果有人需要的话,我已经找到答案了。
首先在控制器中我获取所有 id 列表,然后我将列表更改为 json 中的字符串。
控制器代码:
public IActionResult CheckBoxDB()
{
List<string> parts = new List<string>();
GetId(parts);
ViewBag.All = parts;
var json = JsonConvert.SerializeObject(parts);
ViewBag.change = json;
return View();
}
private void GetId(List<string> parts)
{
List<DdlcheckBox> ddlcheckBoxes = new List<DdlcheckBox>();
ddlcheckBoxes = _context.DdlcheckBox.ToList();
foreach (var data in ddlcheckBoxes)
{
string id = data.Id.ToString();
parts.Add(id);
}
}
然后,在视图中,我在脚本中获取 ViewBag 值。
<script>
$(document).ready(function () {
var dropdowntree = $("#dropdowntree").data("kendoDropDownTree");
dropdowntree.value('@ViewBag.change');
});
</script>
谢谢。