簡體   English   中英

用組合框重新綁定網格,如何獲取選擇的值?

[英]Rebind grid with combobox, how to get selected value?

我使用Telerik-MVC,並且在更改組合框的值時嘗試重新綁定網格。 一切似乎都正常,但是我無法獲得組合框的選定值。 這是我的代碼:

網格:

@{Html.Telerik().Grid(Model)
        .Name("Grid")
        .Columns(columns =>
        {
            columns.Bound(o => o.Col1);
            columns.Bound(o => o.Col2);
            columns.Bound(o => o.Col3);
        })
        .DataBinding(dataBinding => dataBinding.Ajax()
             .Select("_MyAction", "MyController")
        )
        .ClientEvents(events => events.OnDataBinding("Grid_onDataBinding"))
}

組合框 :

@(Html.Telerik().ComboBox()
        .Name("ComboBox")
        .HtmlAttributes(new { id = "ComboBoxCode" })
        .BindTo(new SelectList(Model.GroupBy(x => x.Code)
                              .Select(o => o.First()).ToList(), 
                              "Code", "Code"))
        .ClientEvents(events => events
                .OnChange("onComboBoxChange")
        )
)

劇本:

function onComboBoxChange(e) {
    $("#Grid").data("tGrid").rebind();
}
function Grid_onDataBinding(e) {
    var code = /* I need to get the combobox value here */;
    e.data = { myCode: code };
}

控制器:

    [GridAction]
    public ActionResult _MyAction(string myCode)
    {
        Console.WriteLine("Code : " + code);
        /*
            Set new model here
        */
        return View(new GridModel(newModel));
    }

我嘗試過類似的事情:

var e = document.getElementById("ComboBoxCode");
var code = e.options[e.selectedIndex].text;

但這是行不通的。 您能告訴我如何解決此問題並獲得正確的價值嗎?

問題在於,當重新綁定網格時,您實際上並沒有使用ComboBox選定的值。 您的onComboBoxChange函數告訴網格重新綁定,方法是_MyAction方法。 您從未傳入ComboBox值。 您應該做的是在進行數據綁定之前,獲取選定的值並將其傳遞給控制器​​操作。 有關詳細信息,請參見http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-client-api-and-events.html#OnDataBinding 像這樣:

function Grid_onDataBinding(e) {
    var combobox = $('#ComboBox').data('tComboBox');
    e.data = { code: combobox.value };
}

(請注意,我實際上並未對ComboBox進行任何工作,因此未經測試,但這至少應該使您走上正確的道路。請參閱ComboBox文檔 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM