Kendo UI MVC网格弹出窗口,如何返回所选组合框项目的值

时间:2013-11-26 09:43:10

标签: c# asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我是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

1 个答案:

答案 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)