2008-08-15 15 views
5

ASP.NET'e oldukça yeni ve işlerin nasıl yapıldığını öğrenmeye çalışıyorum. Bir C# arka planından geliyorum, bu yüzden kod arkasındaki bölüm çok kolay, ama bir web geliştiricisi gibi düşünmek alışılmadık.Bir aspx sayfasından ascx kalıcı bir pop-up'a nasıl veri aktarabilirim?

Onay kutularının bulunduğu bir aspx sayfam var. Hangi satırların kontrol edildiğini listelemek ve bu listeden bir oturum değişkeni oluşturmak için bir Button_Click olayıyla kodlanmış bir düğmem var. Ascx sayfasındaki paneli kontrol eden ascx sayfamın ModalPopupExtender'ı ile aynı düğmeye (TargetControlID aracılığıyla) başvurulur.

Düğmeye tıklandığında, kalıcı pop-up açılır, ancak Button_Click olayı asla tetiklenmez, bu nedenle modal oturum verilerini alamaz.

İki sayfa ayrı olduğu için, ModalPopupExtender'ı aspx.cs kodundan arayamıyorum, ascx.cs kodundaki onay kutularının listesine ulaşamıyorum ve bir yol göremiyorum. oturum değişkenimi doldur ve sonra diğer kalıcı düğmeyi veya modal açılır penceremi açacak olan kontrolü etkinleştir.

Herhangi bir düşünce?

cevap

3

Tüm bir usercontrol (.ascx) dosyası, yeniden kullanılabilir işlevsellik sağlamak için birlikte gruplandırdığınız denetimler kümesidir. İçinde tanımlanan denetimler, sayfa yaşam döngüsünü durdurarak yine de sayfanın denetim koleksiyonuna (.aspx) eklenir. ModalPopupExtender, usercontrol istemci tarafında denetimleri göstermek ve gizlemek için javascript ve dhtml kullanır. Gördüğünüz şey, tıklama olayının ModalPoupExtender tarafından istemci tarafında ele alındığı ve sunucuya geri gönderilmesinin iptal edilmesidir. Bu, tasarım gereği varsayılan davranıştır. Yine de, aynı kontrol ağacının bir parçası olduğu için, sayfanın kontrol koleksiyonuna usercontrol kodunun arkasından erişebilirsiniz. İhtiyacınız olan çocuğu aramak için herhangi bir kontrolün FindControl (xxx) yöntemini kullanın.

0

Üzgünüz, ama kafam karıştı. Doğrudan bir ascx çağıramazsınız, bu nedenle ...

Modal kodunuz, gizli bir panel vb.

Veya tıklama olayında aradığınız başka bir aspx sayfası mı?

1

DancesWithBamboo'nun yanıtını takip eden bazı araştırmalardan sonra, nasıl çalışacağını anladım.
benim aspx sayfası içinde benim .Ascx sayfasına bir örnek referansı:

AjaxControlToolkit.ModalPopupExtender mpe = 
    (AjaxControlToolkit.ModalPopupExtender) 
      MyModalPage.FindControl("modalPopup"); 
mpe.Show(); 
: şu şekilde görünecektir kod arkasında

<uc1:ChildPage ID="MyModalPage" runat="server" /> 

aspx kapmak ve (modalPopup adlandırılır) ModalPopupExtender açmak için

İlgili konular