2011-03-25 13 views
5

bu düşünün -Dinamik kontrolleri oluşturma ve geri gönderme genelinde kontroller değerleri kaydetmek - ASP.Net C#

Ben son kullanıcı bazı ayrıntıları alarak bir ASP.Net sayfasında dinamik bir sekme denetimi oluşturmasını sağlar. Her sekme eklendi için bazı ayarları olsun -

  1. Sekme Başlığı
  2. Tab Content
  3. Sekme Altbilgi bağlantı

Yani sekme her için bu detayları olsun. Kullanıcıya bir tane daha sekmesine 'Sekme Ekle' düğmesi verilir. Bu yüzden sekme ayarlarını almak için sayfaya bir tane daha sekme ayarları paneli eklemem gerekiyor. Ancak, daha önce oluşturulmuş dinamik sekme ayarları panelinde girilen değerleri kaybediyorum. Kullanıcı, birçok sekme ekleyebilir ve her sekme için ayarları girebilir. Sonunda, onu kaydettiklerinde sekme kontrolünü (ayarlarına ve içeriğine bağlı olarak) yapıyorum ve kontrolü ben yaparım. kontroller dinamik olduğundan

, ben iki seçenekten şey açabiliyorum -

  1. yeniden oluşturun önceden oluşturulan n - 1 sekmesi ayarları panelini bir n'inci sekme eklerken. Dolayısıyla, her bir geri gönderme boyunca, her bir sekme için ayarlar panelini yeniden oluşturmam gerekiyor. Ama bu durumda değerlerin nasıl devam edeceğini bilmiyorum.
  2. İstemci tarafındaki ayarlar panelini basit html denetimleriyle ekleyin ve sayfadaki Unload'ı denetleyin -> Ayrıştırma ayarları -> Gizli bir alana kaydet -> Sunucu tarafında alın. Bu durumda, denetimler için doğrulama komut dosyaları yazmam gereken tüm sunucu tarafı yeteneklerini kaybederim.

Bunu daha iyi anlamak için herhangi bir anlayış?

cevap

0

Geçmişte # 1 numaralı seçeneği uygulamıştım. Denetimler ağacınızı sayfa olayları yaşam döngüsünde belirli bir noktada yeniden oluşturmanız gerekecek, böylece görüntüleme etkinliği görünümleri tekrara döndürdüğünde, ihtiyaç duyduğu tüm denetimlere sahip olacak. Hatırladığım kadarıyla, tüm denetimleri, istemciye gönderilmeden önce, sayfanın oluşturulduğu ve görüntülendiğinde görüntülendiği gibi aynı adlarla aynı hiyerarşi ans'larına geri yüklemeniz gerekir. Herhangi bir tutarsızlık varsa, dinamik kontroller için yükleme görüntüsü çalışmaz.

1

Bir yöntem ViewState'deki sekmeleri yeniden oluşturmanız için gereken verileri kaydetmektir. Bunu örneğin PreRender olayı sırasında yapabilirsiniz. Geri Gönderme sırasında orijinal olarak sahip olduğunuz kontrolleri yeniden oluşturmanız, orijinal kimliklerini ve hiyerarşideki sırasını koruyabilmeniz gerekir. Bunu LoadViewState aşamasında yapabilirsiniz.

Page_Load'a girdikten sonra yeni tablonuzu oluşturabilirsiniz