![](/img/trans.png)
[英]How to get the value of a selected item in a combobox in a datagridview
[英]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.