我有以下Kendo DropdownList:
@(Html.Kendo().DropDownListFor(m => Model.CmtsId).Name("#=uid#CmtsId")
.Animation(false)
.DataSource(a => a.Read(r => r.Url("/webAPIpath")))
.DataTextField("Text")
.DataValueField("Value")
.OptionLabel("Select")
.ToClientTemplate())
以下代码位于“webAPIpath”的另一端,并为上述下拉列表构建一个SelectList,以用作选项列表:
var results = await _cmtsService.GetAllCmts(LogData);
if (results.Status == ResponseStatus.Success)
{
var markets = await _locationService.GetMarketsForHeadEndAsync(headEnd, LogData);
var prevSelected = await _pendingChangesService.GetPendingPortSelections(nodeId, LogData);
var list = new List<SelectListItem>();
foreach (var cmts in results.Data.Where(a => markets.Data.Any(b => b.Id == a.MarketId)))
{
var market = markets.Data.FirstOrDefault(a => a.Id == cmts.MarketId);
var mfg = _deviceService.GetManufacturerAsync(cmts.ManufacturerId, LogData);
var model = _deviceService.GetModelAsync(cmts.ModelId, LogData);
await Task.WhenAll(mfg, model);
list.Add(new SelectListItem()
{
Text =
$"cmts{cmts.Number}-{market.MarketAbbreviation} / {mfg.Result.Data.Manufacturer} / {model.Result.Data.Model} / {cmts.DocsisCapability}",
Value = cmts.Id.ToString()
});
}
//Set selected value if previous selection exists
foreach (var item in list.Where(item => item.Value.Equals(prevSelected.Data?.NewCMTSID.ToString())))
{
item.Selected = true;
}
return Ok(list);
}
return InternalServerError(results.Exception);
我想要的是item
list
item.Selected = true;
,.Value()
是我的下拉列表的默认值。我不能为我的生活弄清楚如何让kendo下拉列表尊重它所绑定的选择列表中项目的Selected状态。我找到的所有kendo文档告诉我使用.SelectedIndex()
或Selected = true;
但我不能这样做(或者不知道我会怎么做)因为列表中的'Selected'项目是从单独的数据库查询动态确定,所以我必须进行单独调用,然后进行比较并通过javascript / jquery设置值。
简而言之,我如何获得Kendo()。DropDownListFor将默认选中的选项设置为我的SelectList中@POST
@Path("/uploadDocument")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadDocument(
@FormDataParam("file") InputStream fileInputStream,
@FormDataParam("file") FormDataContentDisposition contentDispositionHeader) {
答案 0 :(得分:0)
如果你绑定了一个原始值(看起来你是),你需要添加一个属性(注意下划线,而不是破折号):
@(Html.Kendo().DropDownListFor(m => Model.CmtsId).Name("#=uid#CmtsId")
.Animation(false)
.DataSource(a => a.Read(r => r.Url("/webAPIpath")))
.DataTextField("Text")
.DataValueField("Value")
.OptionLabel("Select")
.HtmlAttributes(new { data_value_primitive = "true" })
.ToClientTemplate())