C# ASP-devexpress如何按组合框选定项筛选gridview
从combobox到gridview的交互有问题。我的用例是:用户从combox值中选择,gridview将通过combobox中的值更新其内容。我正在aps Web应用程序中使用devexpress控件 型号:C# ASP-devexpress如何按组合框选定项筛选gridview,c#,asp.net-mvc,gridview,devexpress,C#,Asp.net Mvc,Gridview,Devexpress,从combobox到gridview的交互有问题。我的用例是:用户从combox值中选择,gridview将通过combobox中的值更新其内容。我正在aps Web应用程序中使用devexpress控件 型号: public class MyModel { public IEnumerable<Person> Persones() { return DataProvider.GetPersons(); } public IEnume
public class MyModel
{
public IEnumerable<Person> Persones()
{
return DataProvider.GetPersons();
}
public IEnumerable<Role> Roles()
{
return DataProvider.GetRoles();
}
public int SelectedRoleId { get; set; }
}
组合框局部视图
@Html.DevExpress().ComboBox(cmbSettings =>
{
cmbSettings.Name = "RoleId";
cmbSettings.Width = System.Web.UI.WebControls.Unit.Pixel(200);
cmbSettings.Properties.ValueField = "Id";
cmbSettings.Properties.TextField = "RoleName";
cmbSettings.Properties.ValueType = typeof(int);
cmbSettings.SelectedIndex = 0;
cmbSettings.Properties.IncrementalFilteringMode = IncrementalFilteringMode.Contains;
cmbSettings.Properties.ClientSideEvents.SelectedIndexChanged =
"function(s, e) {GridView.PerformCallback();}";
}).BindList(Model.Roles()).Bind(Model.SelectedRoleId).GetHtml()
控制器:
public class HomeController : Controller
{
public ActionResult Index([ModelBinder(typeof(DevExpressEditorsBinder))]MyModel mo)
{
return View(mo);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GridViewPartialView([ModelBinder(typeof(DevExpressEditorsBinder))]MyModel mo)
{
return PartialView("GridViewPartialView", mo);
}
}
所以我期望在我的控制器中更新模型,但每次我得到的模型都不是实际数据。我在模型使用中遗漏了什么?实现我的用例的最佳方式是什么?我与来自DevExpress的人员讨论了这个问题,他们帮助我解决了这个问题 解决办法是
@Html.DevExpress().ComboBox(cmbSettings =>
{
cmbSettings.Name = "RoleId";
cmbSettings.Width = System.Web.UI.WebControls.Unit.Pixel(200);
cmbSettings.Properties.ValueField = "Id";
cmbSettings.Properties.TextField = "RoleName";
cmbSettings.Properties.ValueType = typeof(int);
cmbSettings.SelectedIndex = 0;
cmbSettings.Properties.IncrementalFilteringMode = IncrementalFilteringMode.Contains;
cmbSettings.Properties.ClientSideEvents.SelectedIndexChanged =
"function(s, e) {GridView.PerformCallback();}";
}).BindList(Model.Roles()).Bind(Model.SelectedRoleId).GetHtml()
public class HomeController : Controller
{
public ActionResult Index([ModelBinder(typeof(DevExpressEditorsBinder))]MyModel mo)
{
return View(mo);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GridViewPartialView([ModelBinder(typeof(DevExpressEditorsBinder))]MyModel mo)
{
return PartialView("GridViewPartialView", mo);
}
}