DevExtreme 下拉框中的数据绑定不起作用
Data Binding in DevExtreme Drop Down Box not working
这里有人使用 DevExtreme 创建 ASP.NET MVC 项目吗?我只想创建一个简单的下拉框来绑定来自控制器的数据源。这是它在控制器内部的工作方式,我创建了一个对象列表,然后我将具有两个字段 "Key" 和 "Value" 的模型添加到列表中。所以我在控制器的 return 视图中传递了对象列表。
从screenshot above while I debugging the View, the Model is the list of object that I passed in, it has data for sure. You can see there are two fields "Key" and "Value" from each item, and I also specified the ValueExpr and DisplayExpr. When I run the project, this is the result I get. I just don't know why it is still blank while my data does exist. Am I missing some code?
可以看出
如果没有更多细节,很难确定,但是当我 运行 进入这个问题时,我通过检查修复了它:
- 如果模型格式错误(不是 list/IEnumerable)
- 模型 class 字段设置为私有
我也会看看这个 link/demo DevExtreme 的 SelectBox:https://js.devexpress.com/Demos/Widgetsgallery/Demo/SelectBox/Overview/Mvc/Light/
或
下拉框:
https://js.devexpress.com/Demos/WidgetsGallery/Demo/DropDownBox/SingleSelection/Mvc/Light/
否则,这就是我用来填充我选择的编辑器的内容(我使用 Dapper 进行 SQL 调用):
查看
@(Html.DevExtreme().SelectBox()
.ID("DemoSelectBox")
.DataSource(d => d.Mvc()
.LoadAction("GetDemoData"))
.DisplayExpr("DemoName")
.ValueExpr("DemoValue"))
控制器
[HttpGet]
public ActionResult GetDemoData(DataSourceLoadOptions loadOptions)
{
List<DemoData> demoDataGrid= new List<DemoData>();
using (SqlConnection connection = new SqlConnection(_connectionString))
{
demoDataGrid= connection.Query<DemoData>(
sql: @"SELECT DemoValue
,DemoName
FROM DemoDatabaseTable"
).ToList();
}
return Content(JsonConvert.SerializeObject(DataSourceLoader.Load(demoDataGrid, loadOptions)), "application/json");
}
型号Class
public class DemoData
{
public string DemoValue{ get; set; }
public string DemoName{ get; set; }
}
这里有人使用 DevExtreme 创建 ASP.NET MVC 项目吗?我只想创建一个简单的下拉框来绑定来自控制器的数据源。这是它在控制器内部的工作方式,我创建了一个对象列表,然后我将具有两个字段 "Key" 和 "Value" 的模型添加到列表中。所以我在控制器的 return 视图中传递了对象列表。
从screenshot above while I debugging the View, the Model is the list of object that I passed in, it has data for sure. You can see there are two fields "Key" and "Value" from each item, and I also specified the ValueExpr and DisplayExpr. When I run the project, this is the result I get. I just don't know why it is still blank while my data does exist. Am I missing some code?
如果没有更多细节,很难确定,但是当我 运行 进入这个问题时,我通过检查修复了它:
- 如果模型格式错误(不是 list/IEnumerable)
- 模型 class 字段设置为私有
我也会看看这个 link/demo DevExtreme 的 SelectBox:https://js.devexpress.com/Demos/Widgetsgallery/Demo/SelectBox/Overview/Mvc/Light/
或
下拉框: https://js.devexpress.com/Demos/WidgetsGallery/Demo/DropDownBox/SingleSelection/Mvc/Light/
否则,这就是我用来填充我选择的编辑器的内容(我使用 Dapper 进行 SQL 调用):
查看
@(Html.DevExtreme().SelectBox()
.ID("DemoSelectBox")
.DataSource(d => d.Mvc()
.LoadAction("GetDemoData"))
.DisplayExpr("DemoName")
.ValueExpr("DemoValue"))
控制器
[HttpGet]
public ActionResult GetDemoData(DataSourceLoadOptions loadOptions)
{
List<DemoData> demoDataGrid= new List<DemoData>();
using (SqlConnection connection = new SqlConnection(_connectionString))
{
demoDataGrid= connection.Query<DemoData>(
sql: @"SELECT DemoValue
,DemoName
FROM DemoDatabaseTable"
).ToList();
}
return Content(JsonConvert.SerializeObject(DataSourceLoader.Load(demoDataGrid, loadOptions)), "application/json");
}
型号Class
public class DemoData
{
public string DemoValue{ get; set; }
public string DemoName{ get; set; }
}