我是Kendo UI以及javascript的新手。使用弹出模式使用MVC Kendo网格编辑。我在弹出窗口打开时创建自定义模板页面(在EditorTemplates文件夹下)进行编辑。有一些文本框和Kendo该页面中的Combobox小部件用于更新记录。 来自文本框的值可以发送到控制器,但组合框上的选定项目值无法发送到控制器。我该怎么做?
查看(剃刀)
@model PROJECT.UI.WebService.Proxy.DSrvINFO.PERSONALINFORMATIONS
<div class="row">
<div class="span10">
<div style="overflow-y:scroll;overflow-x:hidden;height: 500px;" >
<table width="100%" cellspacing="5" style="margin: 20px">
<tr>
<td width="10%">
@Html.LabelFor(model => model.NAME)
</td>
<td width="40%">@Html.EditorFor(model => model.NAME)
</td>
<td width="10%">
@Html.LabelFor(model => model.SURNAME)
</td>
<td width="40%">@Html.EditorFor(model => model.SURNAME) </td>
<td width="10%">
@Html.LabelFor(model => model.IDTYPE)
</td>
<td width="40%">
@(Html.Kendo().ComboBox()
.Name("IDTYPES")
.DataTextField("DESCRIPTION").HtmlAttributes(new { style="width:220px"}) /
.DataValueField("REFERENCEID")
// .Filter(FilterType.Contains)
.Placeholder("SELECT")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("Details", "Items", new { Code = "IDTYPE", addEmptyRow = false });
}).ServerFiltering(true);
}))
</td>
</tr>
</table>
</div>
</div>
</div>
控制器
public ActionResult PersonUpdate([DataSourceRequest] DataSourceRequest request,Guid id,string name,string surname,string[] IDTYPES) { ....
以下是弹出窗口中按下更新按钮时从chrome捕获的示例标题数据.IDTYPES值来自组合框的选定项目对象。我需要传递一些IDTYPE值(例如IDIDPES.CODE,IDTYPES。 ID,IDTYPES.REFERENCEID)来自视图的控制器。
sort:
group:
filter:
CITIZENNO:-
ID:78ef069f-c31b-4828-81e8-4ede52ee0818
NAME:ABDULAZIZ
SURNAME:AL GARNI
IDTYPES.ID:69bd3ef7-fc80-4f26-a978-963ed670d3fe
IDTYPES.REFERENCEID:57ff1ea9-6cb4-4d7e-abc7-caa367fd4627
IDTYPES.CODE:3
IDTYPES.DESCRIPTION:PASSPORT ID
IDTYPES.PARENTID:00000000-0000-0000-0000-000000000000
IDTYPES.ISSELECTED:false
IDTYPES.COUNT:0
IDTYPES.ISACTIVE:false
IDTYPES.ISDEFAULT:false
IDTYPES[ID]:69bd3ef7-fc80-4f26-a978-963ed670d3fe
IDTYPES[REFERENCEID]:57ff1ea9-6cb4-4d7e-abc7-caa367fd4627
IDTYPES[CODE]:3
IDTYPES[DESCRIPTION]:PASSPORT ID
IDTYPES[PARENTID]:00000000-0000-0000-0000-000000000000
IDTYPES[ISSELECTED]:false
IDTYPES[COUNT]:0
IDTYPES[ISACTIVE]:false
IDTYPES[ISDEFAULT]:false
答案 0 :(得分:0)
可以使用JQuery按照documentation中的描述检索ComboBox
中的值。之后,您可以使用Ajax将其发布到控制器:
var selectedValue = $("#IDTYPES").data("kendoComboBox").text();
$.ajax({
url: "@Url.Action(actionName, controllerName)" + "/?id="+userid+"&name="+username+"&surname="+usersurname+"&idtype="+selectedValue,
success: function(){ /*handle success*/},
error: function(){ /*handle error*/}
});
您还需要更改控制器操作定义,如下所示。据我所知,您不需要ComboBox
的所有值,只需要选定的值:
public ActionResult PersonUpdate([DataSourceRequest] DataSourceRequest request,Guid id,string name,string surname,string IDTYPE)