私は 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;
しかし、うまくいきません。この問題を修正して正しい値を取得する方法を教えてください。