Asp.net 剑道网格编辑模板数据绑定-无数据
我对剑道网格的编辑模板数据绑定有问题。 我已经将我的网格绑定到DataTable模型(它必须是DataTable,因为所有克隆都必须是动态生成的-我不知道模式),我添加了导出、排序、页面等。我还添加了编辑按钮,并使用编辑模板定义了另一个cshtml文件。这一切几乎完美无瑕。一个问题是我收到了用于编辑模板的空模型。 视图: 和我的编辑模板:Asp.net 剑道网格编辑模板数据绑定-无数据,asp.net,model-view-controller,kendo-ui,kendo-grid,actionresult,Asp.net,Model View Controller,Kendo Ui,Kendo Grid,Actionresult,我对剑道网格的编辑模板数据绑定有问题。 我已经将我的网格绑定到DataTable模型(它必须是DataTable,因为所有克隆都必须是动态生成的-我不知道模式),我添加了导出、排序、页面等。我还添加了编辑按钮,并使用编辑模板定义了另一个cshtml文件。这一切几乎完美无瑕。一个问题是我收到了用于编辑模板的空模型。 视图: 和我的编辑模板: @model System.Data.DataRowView <h3>Customized edit template</h3> @
@model System.Data.DataRowView
<h3>Customized edit template</h3>
@if(Model == null)
{
<label> null</label>
}
else
{
<label> not null!!!!!!</label><br />
@Html.Label(Model.DataView.Table.Columns.Count.ToString())<br />
@Html.Label(Model.ToString())<br />
@Html.Label(Model.Row.Table.Columns.Count.ToString())<br />
}
@for (int i = 0; i < Model.DataView.Table.Columns.Count; i++)
{
@Html.LabelFor(model => model.DataView.Table.Columns[i].ColumnName.ToString())
@Html.LabelFor(model => model.Row[i].ToString())
<br />
}
@model System.Data.DataRowView
自定义编辑模板
@if(Model==null)
{
无效的
}
其他的
{
非空!!!!!!!
@Html.Label(Model.DataView.Table.Columns.Count.ToString())
@Html.Label(Model.ToString())
@Html.Label(Model.Row.Table.Columns.Count.ToString())
}
@for(int i=0;imodel.DataView.Table.Columns[i].ColumnName.ToString())
@Html.LabelFor(model=>model.Row[i].ToString())
}
所以。。当我点击编辑按钮时,我会看到一个标题正确的窗口,上面写着“01234非空!!0 DataRowView 0”
所以我得出结论,模型的类型是正确的,一个问题是通过我选择的行。
我对web和剑道/telerik非常陌生,所以我的问题是:如何将我选择的网格行发送到编辑模板?
另一个问题是:为什么当我单击“编辑”时,我没有在我的控件中进入UpdateRow操作?我已经通过使用编辑模式InCell解决了这个问题-一个重要的注意事项是指定列类型,如下所示:是不是因为我的编辑器模板在页面加载后没有选择任何行时被重新呈现?
<scriprt>
function getRow()
{
var grid = $('#OpertionalViewGrid').data('kendoGrid');
var selectedItem = grid.dataItem(grid.select());
return selectedItem;
} </script>
public ActionResult Export_Read([DataSourceRequest]DataSourceRequest request)
{
var ovs = new OperationalViewService();
return Json(ovs.Read()/*.ToDataSourceResult(request)*/);
}
public ActionResult UpdateRow([DataSourceRequest] DataSourceRequest dsRequest, DataRowView row)
{
var t = 5;
return Json(row/*ModelState.ToDataSourceResult()*/);
}
@model System.Data.DataRowView
<h3>Customized edit template</h3>
@if(Model == null)
{
<label> null</label>
}
else
{
<label> not null!!!!!!</label><br />
@Html.Label(Model.DataView.Table.Columns.Count.ToString())<br />
@Html.Label(Model.ToString())<br />
@Html.Label(Model.Row.Table.Columns.Count.ToString())<br />
}
@for (int i = 0; i < Model.DataView.Table.Columns.Count; i++)
{
@Html.LabelFor(model => model.DataView.Table.Columns[i].ColumnName.ToString())
@Html.LabelFor(model => model.Row[i].ToString())
<br />
}