отключение модального всплывающего окна в jqgrid - PullRequest
3 голосов
/ 22 января 2010

Я хочу создать собственное сообщение без использования модального всплывающего окна в jqgrid. Есть ли способ отключить его? Или есть способ изменить содержимое модала?

Ответы [ 5 ]

2 голосов
/ 22 января 2010

Можете ли вы быть более конкретным? Если вы хотите свой собственный модальный диалог, вы можете просто добавить обработчик событий (например, на кнопку «Редактировать»), который при запуске откроет ваш собственный диалог. Для этого вы можете использовать диалоговое окно jQuery UI и просто открыть его для своей собственной пользовательской формы.

Обновление После проверки исходного кода jqGrid info_dialog - это функция, которая используется для отображения этого конкретного диалога. Существует отдельный вызов для отображения всплывающего окна «Загрузка ...». Кажется, что это не простой способ отключить info_dialog. Однако вы можете изменить исходный код jqGrid, чтобы выполнить то, что вам нужно. Вы можете либо:

  • Немедленно вернитесь с info_dialog - что может быть экстремальным, поскольку может сообщать о других нужных вам ошибках - или

  • Найдите и закомментируйте вызов, который отображает эту конкретную ошибку AJAX. Это связано с пробами и ошибками, но при наличии только 18 вызовов этой функции вы не будете долго искать. Фактически, начните с комментирования этого экземпляра, поскольку он вызывается из функции error вызова ajax:

    info_dialog(a.jgrid.errors.errcap,e.status+" : "+e.statusText+"<br/>"+u,a.jgrid.edit.bClose);

Очевидно, что такая модификация является последним средством, но как только она сработает, вы можете подумать об использовании патча для команды jqGrid для отключения предупреждения.

0 голосов
/ 27 марта 2014

Да, вы можете сделать это. вы можете присвоить видимому свойству значение false [$("#info_dialog").visible(false);] модального окна и можете называть любое свое модальное поле.

editrules: { custom: true, custom_func: validate_edit }


function validate_edit(posdata, colName) {
            var message = "";
            if (posdata != '' && $.isNumeric(posdata))
                return [true, ""];

            if (posdata == '')
                message = colName + " field is required"
            if (!$.isNumeric(posdata))
                message = posdata + " is not a number";

            alert(message);

            $("#info_dialog").visible(false);

            return [false, ""];
        }
0 голосов
/ 23 декабря 2011

Я изменил z-индекс модального всплывающего окна во время выполнения, как только вы можете получить к нему доступ, вы можете сделать любую настройку

editoptions: { size: 20, maxlength: 10,

                            dataEvents: [
                          { type: 'keypress',
                              fn: function (e) {
                                  if (e.keyCode == 13) {
                                      **$("#info_dialog").css('z-index', '100000');**
                                  }
                              }
                          }
                       ]


                        } }

Кроме того, если вы можете сделать это в другом месте, если у вас есть ответ сервера, такой как ошибка

onCellSelect: function (rowid, iCol, aData) {
                    currentRow = rowid;
                    if (rowid && rowid !== lastsel) {
                        if (lastsel) jQuery('#ppGrid').jqGrid('restoreRow', lastsel);
                        $("#ppGrid").jqGrid('editRow', rowid, true, null, null, null, {}, reload,OnError);
                        lastsel = rowid;
                    }
                    else if (rowid && rowid === lastsel)
                    { $("#ppGrid").jqGrid('editRow', rowid, true, null, null, null, {}, reload,OnError); }


                }
0 голосов
/ 17 марта 2010

Я знаю, что это не в тему, но вы пробовали SlickGrid http://wiki.github.com/mleibman/SlickGrid/examples.

0 голосов
/ 15 марта 2010

Поиск div.loadingui div.msgbox {...} где-нибудь в файлах css. Я думаю, что редактирование этого класса CSS сделает работу.

...