Kendo ui 剑道网格和mvc编辑器模板

Kendo ui 剑道网格和mvc编辑器模板,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我有一个mvc编辑器模板(名为ExpenseTypeEdit),定义如下: @model ExpenseType @(Html.Kendo().DropDownListFor(et => et.ExpenseTypeId) .OptionLabel("--Please Select--") .DataTextField("Description") .DataValueField("ExpenseTypeId") .DataSource(datasource

我有一个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 = "" });
        })          
    )
)
function SaveExpense_click(e) {
    var item = this.dataItem($(e.currentTarget).closest("tr"));     

    /*
        Variable 'item' looks like like:

        {
            ExpenseType: {
                ExpenseTypeId: 4,
                Description: ""
            }           
        }   
    */  
    //debugger;
};
我有一个剑道网格,看起来像这样:

@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 = "" });
        })          
    )
)
function SaveExpense_click(e) {
    var item = this.dataItem($(e.currentTarget).closest("tr"));     

    /*
        Variable 'item' looks like like:

        {
            ExpenseType: {
                ExpenseTypeId: 4,
                Description: ""
            }           
        }   
    */  
    //debugger;
};

ExpenseTypeId存在,但不存在描述。为什么项目没有从下拉列表中获取描述,我需要做什么才能将其传递进来

无法获取DDL服务器端的描述,只能获取值。您可以获取值,然后从数据库中检索文本,也可以使用组合框控件,然后可以同时获取值和文本

刚刚注意到你试图在客户端获得它,如果是这样的话


$(“#ExpenseTypeId”).text()
应该可以工作,根据您的示例
item.text()
可能可以工作

您的下拉列表是否包含说明?是否执行此操作
$(“#ExpenseTypeId选项:选中”).text()