Kendo MVC Dropdownlist ValueTemplate()导致dataSource.read()失败

时间:2016-01-28 01:42:13

标签: javascript asp.net-mvc kendo-ui kendo-asp.net-mvc

我有一个剑道MVC下拉列表如下:



@(Html.Kendo().DropDownListFor(model => model.Storeroom)
  .Template("#=StoreroomCode# - #=Description#")
  .ValueTemplate("#=StoreroomCode# - #=Description#")
  .DataTextField("StoreroomCode")
  .DataValueField("StoreroomID")
  .DataSource(d =>
  {
    d.Read(read =>
  {
    read.Action("GetStoreRoomDropDownRepository", "Material")).Type(HttpVerbs.Post);
    });
  })
  .OptionLabel("--- Please Select ---")
)




我有一个javascript函数,当我点击按钮时手动刷新它



    function BindStoreRoomDropDown(ItemID) {
        var ddl = $('#Storeroom').data("kendoDropDownList");
        ddl.dataSource.read({ itemID: ItemID });
    }




问题是,当调用此JS函数时,下拉列表没有刷新,它甚至没有发布到相应的服务器端操作。我认为在post post之前可能会出现一些JS错误,但是没有,没有任何JS错误。

更有意思的是,当我删除.ValueTemplate()时,一切都正常!调用该操作并返回正确的列表!

此行为的可能原因是什么?如何解决?谢谢!

EDITED



[HttpPost]
public ActionResult GetStoreRoomDropDownRepository(int? itemID, string whereclause){
  if(!itemID.HasValue) return Json("");
  var CostCenterList = SiteCostCenterService.Instance.getCodeCenterParaBySiteCode(woContext, whereclause);
  var storeRoomQuery = StoreroomService.Instance.getStoreroomListByItemID(pmsContext, itemID.Value, CostCenterList);
    return Json(storeRoomQuery.Distinct().ToList());
}




0 个答案:

没有答案