我有一个mvc编辑器模板(名为ExpenseTypeEdit),定义如下:
@model ExpenseType
@(Html.Kendo().DropDownListFor(et => et.ExpenseTypeId)
.OptionLabel("--Please Select--")
.DataTextField("Description")
.DataValueField("ExpenseTypeId")
.DataSource(datasource => datasource
.Read("GetExpenseTypeList", "Lookup", new { area = "" })
)
.HtmlAttributes(new { width = "98%" })
)
我有一个看起来像这样的剑道网格:
@(Html.Kendo().Grid<ExpenseViewModel>()
.Name("ExpenseGrid")
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Columns(columns =>
{
columns.Bound(e => e.ExpenseType)
.EditorTemplateName("ExpenseTypeEdit");
columns.Command(command =>
{
command.Custom("SaveExpense").Click("SaveExpense_click").Text("Save");
}
);
})
.DataSource(datasource => datasource.Ajax()
.ServerOperation(false)
.Model(model =>
{
model.Id(i => i.ExpenseId);
model.Field(f => f.ExpenseType)
.DefaultValue(new Solutions.Business.Entities.PrimitiveObjects.ExpenseType { ExpenseTypeId = 0, Description = "" });
})
)
)
SaveExpense_click函数如下所示:
function SaveExpense_click(e) {
var item = this.dataItem($(e.currentTarget).closest("tr"));
/*
Variable 'item' looks like like:
{
ExpenseType: {
ExpenseTypeId: 4,
Description: ""
}
}
*/
//debugger;
};
ExpenseTypeId 存在但不是描述。为什么项目没有从下拉列表中获取描述,我需要做什么才能将其传入?
答案 0 :(得分:0)
您无法获得DDL服务器端的描述,您只能获取该值。您可以获取值,然后从数据库中检索文本,或者您可以使用组合框控件,然后您将能够同时获取值和文本。
如果是这样的话,请注意你的尝试让它成为客户端。
$("#ExpenseTypeId").text()
应该可行,根据您的示例item.text()
可能有效