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>

そしてそれは間違いかもしれません

しかし、私もこの問題を抱えています!しかし、Webで検索しても解決策が見つかりません。この問題をトリックで一時的に解決します。値 = -1 のオプションを 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>"; 

このようなスタイルを使用して、選択要素の変更後にそれを削除できます

style='font-style:italic; 色:グレー; width:100px' data-native-menu='false'

于 2013-07-08T12:03:46.007 に答える