在jqwidget网格cellediting示例中(在jqxGrid左侧菜单下,打开编辑/编辑),数据在客户端生成。如何将dropdownlist绑定到asp.net .NET MVC3项目中的数据库?(您可以在demo选项卡的产品列中看到下拉列表)网格单元格中的jqwidget下拉列表的数据库绑定
1
A
回答
3
当与数据库初始化下拉列表,应该将其绑定到数据源(或DataAdapter的) ,并应该设置selectedIndex。然后,对于行更新,选择的值应保持在选择状态。
列定义可以是这样的:
{ text: 'Urun', columntype: 'dropdownlist', datafield: 'UrunAdi', width: 177,
initeditor: function (row, cellvalue, editor) {
var urunId = $('#jqxgrid').jqxGrid('getcellvalue', row, "UrunId");
editor.jqxDropDownList({ displayMember: 'UrunAdi', source: dropdownListAdapter, selectedIndex: urunId });
$(document).on('select', editor, function (event) {
selectedUrunId = editor.jqxDropDownList('getSelectedIndex');
});
}
}
变量 “selectedUrunId” 应被全局定义的,也许像var selectedUrunId = -1;
jqxgrid初始化之前。然后在updaterow定义中(它在源定义中)应该使用选定的下拉值。这可能是这样的:
if (selectedUrunId != undefined && selectedUrunId != -1) {
rowdata.UrunId = selectedUrunId;
selectedUrunId = -1;
}
此场景的整个场景是:
// prepare the data
var gridSource = {
datatype: "json",
datafields: [{ name: 'KargoId' }, { name: 'UrunAdi' }, { name: 'UrunId', type: 'int' }],
url: 'BindGrid',
updaterow: function (rowid, rowdata) {
// synchronize with the server - send update command
if (selectedUrunId != undefined && selectedUrunId != -1) {
rowdata.UrunId = selectedUrunId;
selectedUrunId = -1;
}
var data = $.param(rowdata);
$.ajax({
dataType: 'json',
url: 'UpdateEditGrid',
data: data,
success: function (data, status, xhr) {
gridDataAdapter.dataBind();
},
error: function (xhr, status, error) {
alert(JSON.stringify(xhr));
}
});
}
};
var gridDataAdapter = new $.jqx.dataAdapter(gridSource);
var dropdownSource = {
datatype: "json",
datafields: [{ name: 'UrunId' }, { name: 'UrunAdi'}],
url: 'BindDropdown'
};
var selectedUrunId = -1;
var dropdownListAdapter = new $.jqx.dataAdapter(dropdownSource);
// initialize jqxGrid
$("#jqxgrid").jqxGrid(
{
width: 670,
source: gridDataAdapter,
editable: true,
theme: theme,
selectionmode: 'singlecell',
columns: [
{ text: '#', datafield: 'KargoId', width: 40 },
{ text: 'Urun', columntype: 'dropdownlist', datafield: 'UrunAdi', width: 177,
initeditor: function (row, cellvalue, editor) {
var urunId = $('#jqxgrid').jqxGrid('getcellvalue', row, "UrunId");
editor.jqxDropDownList({ displayMember: 'UrunAdi', source: dropdownListAdapter, selectedIndex: urunId });
$(document).on('select', editor, function (event) {
selectedUrunId = editor.jqxDropDownList('getSelectedIndex');
});
}
}]
});
0
您可以使用名为'createeditor'的函数并初始化其中的DropDownList。
列定义:
{ text: 'Proyecto', columntype: 'dropdownlist', datafield: 'jobid', width: 10,
createeditor: function (row, cellvalue, editor) {
editor.jqxDropDownList({ displayMember: 'displaylabel', valueMember: 'catalogvalue', source: dropdownListAdapter });
}
}
DropDownList的数据适配器可以通过使用类似的代码进行初始化:
source = {
datatype: "xml",
datafields: [
{ name: 'CompanyName' },
{ name: 'ContactName' },
{ name: 'ContactTitle' },
{ name: 'City' },
{ name: 'Country' },
{ name: 'Address' }
],
async: false,
record: 'Table',
url: 'Default.aspx/GetCustomers',
};
var dropdownListAdapter = new $.jqx.dataAdapter(source,
{ contentType: 'application/json; charset=utf-8'}
);
相关问题
- 1. jqwidget json数据的网格单元格格式
- 2. 数据网格内的下拉列表
- 3. 用下拉列表绑定数据网格
- 4. 如何使用VB从数据库表格的GridView中绑定下拉列表?
- 5. 根据网格中的下拉列表选择一个kendo单元格
- 6. 绑定数据库到下拉列表
- 7. 无法绑定telerik kendo mvc网格中的下拉列表
- 8. 将数据网格绑定到表格
- 9. 格式化数据绑定asp.net下拉列表
- 10. 如何从下拉列表中替换表格单元格值?
- 11. 将选定的列从数据表绑定到数据网格
- 12. 绑定的对象数据网格单元 - 有条件单元格样式
- 13. 尝试导入单元格数据基于单元格下拉
- 14. 获取选定的值,放置在表格单元格内的下拉列表
- 15. MVC3下拉列表中的网格列,获取选定的值
- 16. 绑定下拉到网格视图
- 17. 在单元格下拉菜单中显示未定义的UI网格
- 18. 用下拉列表加载网格中的表格
- 19. 在网格中使用单元格作为按钮和下拉列表
- 20. 将UI网格行数据绑定到单元格中的javascript调用
- 21. 从单元格3(非数据绑定)访问Telerik RadGrid中的单元格1(非数据绑定)
- 22. 从WPF中的数据绑定数据网格中排除列
- 23. jQuery的数据表,我要如何插入下拉到表格单元格
- 24. 基于下拉确定数据验证旁边的单元格
- 25. 数据绑定到单元格
- 26. jQuery验证数据库绑定的下拉列表
- 27. 根据从下拉列表中选择的数字隐藏单元格
- 28. WPF数据网格动态绑定列
- 29. 如何将数据库中的数据绑定到下拉列表中?
- 30. Mvc网格数据绑定
最初valueMember来(编号来了,而不是文本);那么如果你尝试选择另一个项目,你可以看到下拉菜单的displayMember文字。另一个问题是,如果尝试更新,错误的id值(或错误的valueMember)会转到服务器。 – serefbilge 2012-07-10 22:04:25