0

我有一个 DevExpress MVC GridView,我想仅在客户端处理 SelectionChanged 事件,并使用 AJAX 将任何帖子自己连接到服务器。

我的 GridView 调用我的SelectionChanged()函数,但该函数中的代码s.GetSelectedFieldValues("MedicalRecordNumber", GetSelectedFieldValuesCallback);似乎什么都不做,GetSelectedFieldValuesCallback(values)也没有被调用。

这是我的 GridView 部分视图,它没有标记...

@model IEnumerable<CaseReview>

@Html.DevExpress().GridView(
settings =>
{
    settings.Name = "workListTable";
    settings.Width = Unit.Percentage(90);
    settings.SettingsBehavior.AllowSort = true;
    settings.Settings.ShowFilterRow = true;
    settings.KeyFieldName = "UUID";
    settings.Columns.Add(column =>
    {
        column.FieldName = "CaseReviewID";
        column.Caption = "CaseReviewID";
        column.CellStyle.CssClass = "devExCaseIdHidden";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "FacilityName";
        column.Caption = "FacilityName";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "MedicalRecordNumber";
        column.Caption = "Medical Record Number";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "DateOfBirth";
        column.Caption = "DateOrBirth";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "AgeInYears";
        column.Caption = "AgeInYears";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "Sex";
        column.Caption = "Sex";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "AdmitDate";
        column.Caption = "AdmitDate";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "LOS";
        column.Caption = "LOS";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "DischargeStatus";
        column.Caption = "DischargeStatus";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "ROM";
        column.Caption = "ROM";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "SOI";
        column.Caption = "SOI";
    });
    settings.Columns.Add(column =>
    {
        column.FieldName = "Category";
        column.Caption = "Category";
    });
    settings.CommandColumn.ShowSelectCheckbox = true;
    settings.CommandColumn.Visible = true;
    settings.ClientSideEvents.SelectionChanged = "SelectionChanged";
    settings.ClientSideEvents.RowDblClick = "function(s, e) { OnRowClick(s, e); }";
}).Bind(Model).GetHtml()

...这是相关的 Javascript...

function SelectionChanged(s, e) {
    s.GetSelectedFieldValues("MedicalRecordNumber", GetSelectedFieldValuesCallback);
    alert("new row selected");
}

function GetSelectedFieldValuesCallback(values) {
    for (var i = 0; i < values.length; i++) {
        var item = values[i];
    }
}

正如我所说,GetSelectedVieldValuesCallback(values) 函数没有被调用,而是返回undefined。我正在非常密切地关注此处提供的示例。

4

1 回答 1

0

需要实现settings.CallbackRouteValues模式。

检查KB 以了解有关如何继续的更多信息。

于 2014-04-19T17:34:37.830 回答