2016-12-16 77 views
0

我使用了以下内容:kendo ui中的多个数据源dropdownlistfor?

@(Html.Kendo().DropDownListFor(m => m.AbcID) 
      .OptionLabel("Select Abc") 
      .DataTextField("AbcName") 
      .DataValueField("AbcID") 
      .AutoBind(true) 
      .HtmlAttributes(new { style = "width: 300px" }) 
      .Filter(FilterType.Contains) 
      .DataSource(source => 
      { 
       source.Read(read => 
       { 
        read.Action("AutoCompleteAbcList", "Common").Data("GetSelectedXyz"); 
       }); 
      }) 

所以基本上发生的事情是,在下拉列表正在由AutoCompleteAbcList ActionMethod传回的JSON填充。

我想知道的是,我有另一个ActionMethod ddlPQRList返回一个Json,我想用两个Jsons填充我的下拉列表。

我曾尝试以下:

@(Html.Kendo().DropDownListFor(m => m.AbcID) 
      .OptionLabel("Select Abc") 
      .DataTextField("AbcName") 
      .DataValueField("AbcID") 
      .AutoBind(true) 
      .HtmlAttributes(new { style = "width: 300px" }) 
      .Filter(FilterType.Contains) 
      .DataSource(source => 
      { 
       source.Read(read => 
       { 
        read.Action("AutoCompleteAbcList", "Common").Data("GetSelectedXyz"); 
        read.Action("ddlPQRList", "Common").Data("GetSelectedXyz"); 
       }); 
      }) 

,但没有得到所需的输出。我只从第二个ActionMethod获得列表。

任何帮助表示赞赏。谢谢。

回答

0

不,这是不可能的,你试图做到这一点。一个小部件只能有一个数据源。

第二次读取操作覆盖第一个。这与设置一个变量值两次是一回事......只有第二个重要。

如果你想将DropDownList的数据源是列表的拼接,那么您需要创建一个控制器动作,返回该列表,即:

read.Action("AutoCompleteAbcListANDddlPQRList", "Common").Data("GetSelectedXyz"); 

其中AutoCompleteAbcListANDddlPQRList的实现()返回BOTH AutoCompleteAbcList和ddlPQRList列表的单个列表。

+0

赞!谢谢你,Cap'n。我完全按照你的建议做了。 :) – J09