0

選択したグリッドの左上隅に「行を選択してください」というダイアログ メッセージを配置する方法はありますか?

編集フォームと削除フォームと同じように、アラート警告でも同じ動作が必要です..

このトピックの解決策は私にはうまくいきません.. AlertMod警告メッセージのJQGrid位置

同じページに 3 つのグリッドがあり、最後のグリッドの 1 行をクリックすると、ページの上部に警告メッセージが表示され、ユーザーには認識されません...

誰でも私を助けることができますか?

前もって感謝します

解決:

var orgViewModal = $.jgrid.viewModal;

$.extend($.jgrid, {
    viewModal: function (selector, o) {
        if (selector === '#alertmod') {
            var $gbox = $(o.gbox), $selector = $(selector);
            var of = $gbox.offset(), w = $gbox.width(), h = $gbox.height(); 
            var w1 = $selector.width(), h1 = $selector.height();
            $selector.css({
                'top': of.top + ((h-h1)/2),
                'left': of.left + ((w-w1)/2)
            });
        }
        orgViewModal.call(this, selector, o);
    }
});

他の関心のある人にとって、この解決策は私にとってうまくいきます。アラート ボックスの位置のみを変更し、他のすべてを同じに保ちます。

4

3 に答える 3

0

私があなたの質問を正しく理解しているなら、あなたはnavGridalerttopalertleftオプションを使うことができます。パラメータは、のオプションに含めることができます。答えは、のもう1つの文書化されていないオプションについて説明しています。parametersnavGridnavGrid

于 2012-07-30T10:33:32.607 に答える
0

コメントの上部に書いたように、長いテーブルがあり、アラートウィンドウが常にビューポートの中心にある必要があります。そのため、アラート ウィンドウを動的に配置する必要があります。ユーザーがページを下にスクロールして「編集」または「削除」をクリックした後、位置を設定する必要があります。

私が理解しているように、Navにはアラートモーダルウィンドウの「beforeShowForm」や「beforeShowSearch」などのイベントはありません。また、ページャーのクリックをキャッチできません。

Oleg と Paulo Pinto が提供する解決策がうまくいきません。どうしてか分かりません。私はそれがどのように機能するかさえ理解していません:)

だから私は自分のストレートで... 良くない方法を見つけました。

loadComplete: function(){
    $(window).scroll(function() {
        $('#alert_window_id').center();
    });
}

「center()」は

jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

loadComplete の後、アラート div が既に存在しているように見え、グリッドの高さがいっぱいになるため、ウィンドウ スクロールも存在します。「編集」ボタンをクリックするイベントや警告ダイアログが表示されないため、スクロールイベントごとに警告ダイアログの位置を変更しています。

于 2013-10-10T17:25:27.823 に答える
0

この答えを見て

http://www.ok-soft-gmbh.com/jqGrid/CenterEditForm.htm

beforeShowForm イベントを変更する必要があります

または、この関数を afterShowform イベントに実装できます

function centerForm ($form) {
                    $form.closest('div.ui-jqdialog').position({
                        my: "center",
                        of: $('#grid').closest('div.ui-jqgrid')
                    });
                    }

于 2012-07-30T10:20:22.603 に答える