javascript - 剑道网格和 Jquery 复选框值
问题描述
下午,
第一次在这里发帖,所以祝我好运
我继承了一些代码,以前的开发人员使用了 Kendo UI Mvc,并尝试了 Kendo Grids 的几个实现。
我的任务是扩展网格以在其上添加一些复选框,到目前为止很简单,当这些复选框被选中时,我们可以单击“保存”按钮并将其发布到端点以更新数据库中的行。
问题是,当我单击保存并发布时,它会发布渲染的原始模型,而不是表中选中复选框值为真(选中)的行的新值
模型
public class StockDataModel
{
public DataTable DTGrd = new DataTable();
public int Part_ID { get; set; }
public string Serial_No { get; set; }
public bool Reciept_Confirmed { get; set; }
public bool Doc_Pack_Complete { get; set; }
}
网格
<div id="gridWrapp" style="max-width:100%;overflow:auto;">
@(Html.Kendo().Grid<StockDataModel>()
.Name("summary")
.Columns
(columns =>
{
foreach (System.Data.DataColumn column in Model.DTGrd.Columns)
{
columns.Bound(c => c.Part_ID).Hidden(true);
switch (column.ColumnName.ToLower())
{
case "reciept_confirmed":
columns.Bound(column.ColumnName).Title(column.ColumnName.Replace("_", " "))
//.ClientTemplate("<input type='checkbox' value='\\#= receipt_confirmed \\#' # if (Enabled) { #checked='checked'# } #/>");
//.ClientTemplate("<input id='chkReceiptConfirmed' type='checkbox' #= Reciept_Confirmed checked='checked' :'' # />")
.ClientTemplate("<input id='chkReceiptConfirmed' type='checkbox' class='checkBox' />")
.HtmlAttributes(new { style = "text-align: center" })
.HeaderHtmlAttributes(new { style = "overflow: visible;white-space: normal;" });
break;
case "doc_pack_complete":
columns.Bound(column.ColumnName).Title(column.ColumnName.Replace("_", " "))
//.ClientTemplate("<input type='checkbox' value='\\#= doc_pack_complete \\#' # if (Enabled) { #checked='checked'# } #/>");
//.ClientTemplate("<input id='chkDocPackComplete' type='checkbox' \\#= Doc_Pack_Complete /*? checked='checked' :'' */\\# />")
.ClientTemplate("<input id='chkDocPackComplete' type='checkbox' class='checkBox' />")
.HtmlAttributes(new { style = "text-align: center" })
.HeaderHtmlAttributes(new { style = "overflow: visible;white-space: normal;" });
break;
}
}
}
)
.Sortable()
.Scrollable(s => s.Height(600))
.Filterable()
.Selectable(s => s.Mode(GridSelectionMode.Multiple))
.DataSource
(dataSource => dataSource
.Ajax()
// .PageSize(20)
.Model(model =>
{
var id = Model.DTGrd.Columns["part_id"].ColumnName;
model.Id(id);
foreach (System.Data.DataColumn column in Model.DTGrd.Columns)
{
switch (column.ColumnName.ToLower())
{
case "reciept_confirmed":
case "doc_pack_complete":
var field = model.Field(column.ColumnName, column.DataType);
break;
}
}
})
.Read(read => read.Action("ReadSummary", "RWM"))
//.Update(update => update.Action("UpdateRecords", "RWM"))
)
)
</div>
jQuery
$('#Save').click(function () {
var grid = $("#summary").data("kendoGrid");
var ds = grid.dataSource.view();
var models = [];
for (var i = 0; i < ds.length; i++) {
var row = grid.table.find("tr[data-uid='" + ds[i].uid + "']");
var chkReceiptConfirmed = $(row).closest("td").find("id='chkReceiptConfirmed'");
var chkDocPackComplete = $(row).closest("td").find("id='chkDocPackComplete'");
alert($(chkDocPackComplete).is("input:checked"));
if ($(chkDocPackComplete).is("input:checked") || $(chkReceiptConfirmed).is("input:checked")) {
alert(chkDocPackComplete);
var model = grid.dataItem(row);
models.push(model);
}
我必须在某个地方出错,所以对于我如何实际从新复选框的网格中获取值的任何帮助都是非常受欢迎的
谢谢
解决方案
推荐阅读
- opengl - 如何在OpenGL中将对象坐标映射到屏幕?
- ios - 如何让 Google 的 PlacePicker 在 iOS 上运行?
- regex - 如何使用 Bash 从 JSON 字符串中删除 \n 和 \r?
- android - 如何修复“不变对象作为反应子项无效”
- c++ - 尝试在数组中查找平均值时获取 -nan(ind) 输出(c++)
- java - ARCore中_ShowAndroidToastMessage()的作用是什么?
- r - 将列名称更改应用于数据框列表,但更改未反映在原始数据框中
- mysql - MySQL中的两个选择错误“每个派生表必须有自己的别名”?
- haskell - 如何在 Haskell 中编写模式准引用器?
- kotlin - Kotlin 类扩展