2011-04-19 19 views
7

Şu anda javastar öğesini kullanarak navGrid, del true değerine ayarlıyorum. Sorun, kullanıcının silme işlemini tıkladığında, ızgaranın sol üst köşesinde bir onay kutusu açar. Zaten büyük bir yüksekliğe sahip olan aşağıya doğru kaydırıldığımızdan, kullanıcının onaylamak için en üste gitmesi gerekiyor. Bunun yerini değiştirmek için herhangi bir yolu var mı? Manuel bir ofset gayet iyi, ancak ideal olarak sol üstte olduğu gibi sol altta sabitlemek istiyorum. peşinjqGrid Yeniden Konumlandırma Onay Kutusunu Sil

Teşekkür

(bu üzgünüm bir dupe ise. Sadece göndermeden denedim ama bana biraz garip hata verdi ve benim tarihinin gösterilmiyor yüzden gönderilmeyen üstlendi.)

cevap

9

Bulmak bir dupe değil. Tam tersine, benden iyi bir şekilde +1 buluyorum.

jqGrid, en çok iletişim kutusunu gösteren viewModal ($.jgrid.viewModal) yöntemini dahili olarak kullanır. Yöntem toTop parametresi vardır, ancak delGridRow ve editGridRow kullanamaz ve toTop:true olarak ayarlanacaktır. Ekleme, Düzenleme ve Silme diyalogları her zaman ızgaranın içinde olabilen ızgaranın üst kısmına gösterilecektir.

Sorunu çözmek için iletişim kutusunu değiştiren afterShowForm olay tanıtıcısını tanımlayabilirsiniz. Örneğin, örnekte diyalog seçilen satırın üzerine yerleştirilecektir. Kod, son satırda seçilen satır ve iletişim kutusunun alt kısmı pencerenin dışında olduğunda durum için geliştirilebilir. Yine de, yukarıdaki uygulama varsayılan olarak daha iyi görünüyor çünkü kullanıcı diyaloğu silmek istediği satırın tam olarak görüyor ve diyaloğu tam olarak görünecek şekilde taşıyabiliyor.

Silme iletişim kutusunun önerilen hareketini the live demo üzerinde test edebilirsiniz.

+0

Henüz koduma ekledim ama demo tarafından ihtiyacım olan şey gibi görünüyor. Çok teşekkür ederim! –

+0

Demo artık çalışmıyor. Form hala en üstte açılır. Bir şey mi eksik? – devXen

+0

@Chensformers: Test için hangi web tarayıcısını kullandınız? Testinizi bir kez daha çoğaltmaya çalışın: 1) demoyu açın; 2) kılavuz çubuğunu görebilmeniz için ızgaranın alt kısmına yakın bir satır seçin (örneğin, satır numarasını 290 seçin) 3) "Sil" düğmesine tıklayın 4) "Sil" iletişim kutusunun görüntülendiğinden emin olun ** altında Seçilen satır ** (290 numaralı satırın altında). Eğer birisi “afterShowForm” u cevabımdan kullanmıyorsa, silme diyaloğu, seçili satırın altında değil, ızgaranın üstünde görüntülenir. – Oleg

7

Daha iyi bir şey buldum here!

sizin javascript kütüphanede bu ekleyin:

afterShowForm: function(form) { 
    form.closest('div.ui-jqdialog').center(); 
} 

form.closest ('div.ui-jqdialog') =:

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

Şimdi sadece afterShowForm özelliğinde bu eklemem gerekiyor > modal açılır pencereyi almanıza izin verir, editForm veya deleteForm ise kesinleşmeye gerek yoktur.

Bu kod, pencereyi ekranınızın ortasına yerleştirin, böylece gerçekten büyük bir ızgaraya sahip olmanız durumunda kaydırma yapmanız gerekmez.

İlgili konular