我认为这是jqGrid中的一个错误(我使用的是4.4.0版本)。在我的colModel中,这很好用:
stype:'select', searchoptions: {sopt: ['eq','ne'], value:"Red:Red;Green:Green;Blue:Blue"}
但这不是:
stype:'select', searchoptions: {sopt: ['eq','ne'], dataUrl:'rest/selectcolors'};
dataUrl返回的位置
<option value='Red'>Red</option><option value='Green'>Green</option><option value='Blue'>Blue</option></select>
组合框中的颜色显示正常,默认值为“红色”但过滤器未正确初始化,除非用户通过选择“绿色”或“蓝色”更改组合框过滤器(然后可能返回并选择'红色')。如果用户尝试在未先更改组合框值的情况下进行过滤,则不会找到匹配项。初始使用过滤器对话框和重置过滤器对话框后会出现此问题,因此对用户来说非常混乱。
有没有人知道解决方法/修复此问题?
答案 0 :(得分:0)
<select>
这可能是个错误
然而,我也有这个问题! 但我没有通过网络搜索找到任何解决方案。 我通过一个技巧临时解决这个问题 我添加一个值为= -1的选项和文本“请选择” 然后在更改事件中我删除此选项
searchoptions: {sopt: ['eq', 'ne'], dataUrl:'yoururl',
dataEvents:[{ type: 'change',
fn: function(e)
{
$('td.data').find('option[value=-1]').remove();
}
}]},
但问题仍然存在..如果用户未更改组合框并选择“请选择”选项,他将看到错误。
我在php url中使用以下代码
echo "<select>";
echo "<option value='-1'>please select</option>";
while($row = pg_fetch_assoc($res))
{
echo "<option value='".$row['cid']."' >".$row['cname']."</option>";
}
echo"</select>";
您可以使用这样的样式,并在更改选择元素
后将其删除风格='字体风格:斜体;颜色:灰色; width:100px'data-native-menu ='false'