jqgrid - неправильно установлено начальное значение фильтра при использовании поисков с dataUrl

Я думаю, что это ошибка в 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>

Цвета хорошо отображаются в комбинированном списке со значением "Красный" в качестве значения по умолчанию, но фильтр неправильно инициализирован, если пользователь не изменит фильтр комбинированного списка, выбрав "Зеленый" или "Синий" (а затем, возможно, вернется и выберет "Красный").). Если пользователь пытается отфильтровать, не изменив сначала значение поля со списком, совпадений не найдено. Эта проблема возникает при первоначальном использовании диалогового окна фильтра и после сброса диалогового окна фильтра, поэтому это очень запутывает пользователя.

Кто-нибудь знает об обходном пути / исправить это?

1 ответ

На первый взгляд ваш возвращенный 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>"; 

Вы можете использовать такой стиль и удалить его после изменения элемента select

стиль = "стиль шрифта: курсив; Цвет: серый; width:100px' data-native-menu='false'

Другие вопросы по тегам