2009-03-10 22 views
1

Bir sayfa üzerinde çalışıyorum, diğer sayfalar modda bir şekilde açıldı. İçinde belirli kontrolleri güncellemek için açıcı sayfasında arama fonksiyonu var.Bir sayfada başka bir sayfadan nasıl arama yöntemi var?

Başka bir pencere açmak için window.open kullanıyorum ancak bu durumda açılan sayfa için Page.PreviousPage boş.

ben Önceki Sayfa başvurmak için

<%@ PreviousPageType VirtualPath="~/PreviousPage.aspx" %> 

kullanıyorum.

Herhangi bir öneriniz var mı?

FYI: tüm aspx sayfaları AJAX Etkin'dir.

cevap

2

Görüntülenen bir sayfadaki denetimleri güncelleştirmek için Page sınıfının arkasındaki kodda bir yöntemi çağırabilirsiniz. Page sınıfının örneği, sayfa oluşturulduğunda, sayfa tarayıcıda görüntülendiğinde, Page nesnesi artık mevcut değildir.

PreviousPage özelliği, bir sayfadan diğerine bir gönderi yaptığınızda, ancak sayfayı oluşturmak için kullanılan Page nesnesini içermediğinde kullanılır; bu, işlemek için kullanılmayacak yeniden oluşturulmuş bir Page nesnesini içerir. hiçbir şey. Bunu, alandan gelen bilgileri temel alan bilgilerden okumak için kullanabilirsiniz.

Açıcı sayfasını güncellemek istiyorsanız, ya Javascript() kullanarak istemci tarafında yapmanız ya da sunucunun yan kodunun yeniden oluşturulabilmesi için sayfayı yeniden yüklemeniz gerekir. Bunların bir kombinasyonu, sayfayı güncellemek için AJAX'ı kullanmak olacaktır.

Düzenleme:

window.opener.doSomething('data'); 
:

window.opener.document.getElementById('Info').innerHTML = 'updated'; 

Ayrıca açıcı sayfasında bir JavaScript işlevini çağırabilirsiniz: Örneğin açıcı erişebilir ve bir öğenin içeriğini değiştirmek için Javascript'i kullanabilirsiniz

Bu, size sunucudan veri yüklemek için bir AJAX çağrısı yapmak gibi daha fazla olanak sağlar.

+0

Guffa, PreviousPage mülkünün yalnızca açılış sayfası hakkında bilgi toplamak için kullanıldığını, ancak güncellemenin yapılmadığını söyleyebilir miyim? Bunu yapmak için Javascript kullan, daha fazlasını açıklayabilir misin? – Ahmed

+0

Evet, PreviousPage, ViewState ve Form verileri gibi verileri içeren yeni bir Sayfa nesnesi oluşturur, ancak tarayıcıda görüntülenen sayfa ile hiçbir ilişkisi yoktur. Gönderiye bazı Javascript örnekleri ekledim. – Guffa

1

Ana sayfayı javascript kullanarak sunucuya geri gönderebilirsiniz. Üst sayfaya erişmek için javascript'te window.opener işlevini kullanabilirsiniz.

+0

Agreed, window.opener, modal/pop-up sayfasını açan pencereye bir başvuru yapacaktır. Ardından, üst sayfadaki JS işlevlerini yeni pencereden arayabilir veya doğrudan denetimleri güncelleyebilirsiniz. –

İlgili konular