Easyui datagrid 编辑结束时combobox显示value而不显示text
时间: 2023-08-07 20:05:20 浏览: 244
在 EasyUI Datagrid 编辑结束后, Combobox 显示 value 而不是 text 的原因可能是因为 Combobox 的数据源中没有包含对应的 text 属性。在 EasyUI 中,Combobox 的数据源可以是一个数组或者远程 URL,如果数据源是一个数组,那么每个选项应该是一个 JSON 对象,至少包含 value 和 text 属性。例如:
```
[
{value: 1, text: 'Option 1'},
{value: 2, text: 'Option 2'},
{value: 3, text: 'Option 3'}
]
```
如果 Combobox 显示的是 value 而不是 text,那么很可能是数据源中没有 text 属性。你可以检查一下数据源中的 JSON 对象是否包含 text 属性,如果没有,可以手动添加该属性并设置为与 value 属性相同的值。例如:
```
[
{value: 1, text: 'Option 1'},
{value: 2, text: 'Option 2'},
{value: 3, text: 'Option 3'},
{value: 4, text: 'Option 4', otherProperty: 'Other Value'}
]
```
在这个例子中,第四个选项没有 text 属性,你可以手动添加该属性并设置为 'Option 4'。这样 Combobox 就可以正确地显示 text 了。
相关问题
easyui datagrid 取消编辑以后单元格下拉框样式就没有了
在使用EasyUI的datagrid时,如果在取消编辑后单元格的下拉框样式消失了,可能是由于以下几个原因导致的:
1. **样式覆盖**:取消编辑后,datagrid会重新渲染单元格内容,可能会导致自定义样式被覆盖。
2. **事件绑定**:编辑状态下的事件绑定在取消编辑后可能没有正确移除或重新绑定,导致样式失效。
3. **渲染问题**:取消编辑后,datagrid可能没有正确渲染下拉框的样式。
为了解决这个问题,可以尝试以下几种方法:
1. **检查样式覆盖**:确保取消编辑后,单元格的样式没有被其他CSS规则覆盖。可以在浏览器的开发者工具中检查元素的样式。
2. **重新绑定事件**:在取消编辑后,手动重新绑定下拉框的事件,确保其功能正常。
3. **自定义渲染**:在datagrid的`onAfterEdit`事件中,手动重新渲染下拉框的样式。
以下是一个示例代码,展示了如何在取消编辑后重新渲染下拉框样式:
```html
<table id="dg" title="DataGrid" class="easyui-datagrid" style="width:700px;height:300px"
url="data.json"
toolbar="#toolbar"
rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="name" width="50" editor="text">Name</th>
<th field="value" width="50" editor="text">Value</th>
<th field="type" width="50" editor="{type:'combobox', options:{valueField:'value', textField:'text', data:types}}">Type</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="append()">Append</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeit()">Remove</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="accept()">Accept</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-undo" plain="true" onclick="reject()">Reject</a>
</div>
<script>
var types = [{value: '1', text: 'Type 1'}, {value: '2', text: 'Type 2'}];
function append(){
$('#dg').datagrid('appendRow', {name: '', value: '', type: ''});
}
function removeit(){
var row = $('#dg').datagrid('getSelected');
if (row){
var index = $('#dg').datagrid('getRowIndex', row);
$('#dg').datagrid('deleteRow', index);
}
}
function accept(){
$('#dg').datagrid('acceptChanges');
}
function reject(){
$('#dg').datagrid('rejectChanges');
}
</script>
```
在这个示例中,`accept`函数用于提交更改,`reject`函数用于取消编辑。在取消编辑后,`rejectChanges`方法会重新渲染单元格内容。如果下拉框样式仍然有问题,可以在`onAfterEdit`事件中手动重新渲染下拉框样式。
给我一个easyui datagrid editor选择年的例子
以下是一个EasyUI datagrid editor选择年的例子:
HTML代码:
```
<table id="dg" title="用户列表" class="easyui-datagrid" style="width:700px;height:250px"
url="get_users.php" toolbar="#toolbar" rownumbers="true" pagination="true"
singleSelect="true" fitColumns="true" data-options="onDblClickRow:onDblClickRow">
<thead>
<tr>
<th field="id" width="50">ID</th>
<th field="name" width="100">姓名</th>
<th field="age" width="50">年龄</th>
<th field="gender" width="50">性别</th>
<th field="birthday" width="100" editor="{type:'datebox',options:{required:true}}">生日</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">添加用户</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">编辑用户</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">删除用户</a>
</div>
<div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle">用户信息</div>
<form id="fm" method="post" novalidate>
<div class="fitem">
<label>姓名:</label>
<input name="name" class="easyui-validatebox" required="true">
</div>
<div class="fitem">
<label>年龄:</label>
<input name="age" class="easyui-numberbox" required="true">
</div>
<div class="fitem">
<label>性别:</label>
<select name="gender" class="easyui-combobox" required="true">
<option value="男">男</option>
<option value="女">女</option>
</select>
</div>
<div class="fitem">
<label>生日:</label>
<input name="birthday" class="easyui-datebox" required="true">
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">保存</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="$('#dlg').dialog('close')">取消</a>
</div>
```
JavaScript代码:
```
$(function(){
$('#dg').datagrid({
onClickRow: function(index, row){ // 单击行事件
$('#dg').datagrid('beginEdit', index); // 开始编辑
}
});
});
function newUser(){
$('#dlg').dialog('open').dialog('setTitle','添加用户');
$('#fm').form('clear');
}
function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('setTitle','编辑用户');
$('#fm').form('load',row);
}
}
function destroyUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$.messager.confirm('确认','您确定要删除此用户吗?',function(r){
if (r){
$.post('destroy_user.php',{id:row.id},function(result){
if (result.success){
$('#dg').datagrid('reload'); // 重新加载数据
} else {
$.messager.show({ // 弹出消息框
title: 'Error',
msg: result.errorMsg
});
}
},'json');
}
});
}
}
function saveUser(){
$('#fm').form('submit',{
url: 'save_user.php',
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
var result = eval('('+result+')');
if (result.success){
$('#dlg').dialog('close'); // 关闭对话框
$('#dg').datagrid('reload'); // 重新加载数据
} else {
$.messager.show({ // 弹出消息框
title: 'Error',
msg: result.errorMsg
});
}
}
});
}
```
在上面的代码中,我们使用了EasyUI的datebox组件作为datagrid中生日列的编辑器,这个组件可以选择年月日。
如果你只想选择年份,可以使用EasyUI的combobox组件,设置数据源为年份列表即可。
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)