2

我认为这是 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>

颜色在组合框中显示正常,默认值为“红色”,但过滤器未正确初始化,除非用户通过选择“绿色”或“蓝色”更改组合框过滤器(然后可能返回并选择“红色” )。如果用户尝试在不首先更改组合框值的情况下进行过滤,则找不到匹配项。此问题在初次使用过滤器对话框时和重置过滤器对话框后出现,因此对用户来说非常混乱。

有谁知道解决方法/解决这个问题?

4

1 回答 1

0

乍一看,您返回的 dataurl 没有

<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>"; 

您可以使用这样的样式并在更改选择元素后将其删除

样式='字体样式:斜体;颜色:灰色;宽度:100px' 数据本机菜单 ='假'

于 2013-07-08T12:03:46.007 回答