başından sonra veya yakınına işlenen javascript kodundan ASP.NET (3.5) javascript geri bildirim işlevini __doPostBack
el ile çağırmaya çalışıyorum. Sorun, normal olarak <form>
etiketinin (ve gizli alanların) başlangıcından sonra oluşturulmuş olan geri gönderme komut dosyası bloğunun, bazen </form>
etiketinin kapanmasıyla oluşturulmasından kaynaklanmaktadır.ASP.NET __doPostBack form etiketi
Form etiketinin başına yakın olarak oluşturulmasını zorlamanın bir yolu var mı? Ayrıca, ASP.NET, geri gönderme istemci komut dosyası bloğunun ne zaman/nerede oluşturulacağına nasıl karar verir?
Düzen> Ek Bilgiler: javascript kodu __doPostBack
işlev başvuran bir kullanıcı denetimi içinde bulunur. Denetimin kendisi, bu işlevi çağıran herhangi bir 'geri bildirim' içermiyor. (I 'geri gönderme kontrolleri' denince ben __doPostBack
fonksiyonu ve Yok ASP.NET ImageButton
ve Button
denetimleri çağrı ASP.net denetimleri ortalama) Ben gözlenen ettiğimiz bilgilere ve bağımlılık üzerine Brian'ın yorumun @ Tabanlı
sayfadaki 'geri gönderme denetimleri' kullanılabilirliği hakkında geri gönderme komut dosyası, sayfada geri gönderime neden olan denetimler bulunduğunda, __doPostBack komut dosyası bloğunun <form>
açılmasından sonra oluşturulduğunu ve hiçbiri olmadığında, bunların yakınlaştırdığını buldum </form>
etiketinin kapanması (veya this'a göre işlenmesi bile gerekmemektedir). Şimdi, ASP.NET'in, onu gerektiren bir denetim yoksa, geri gönderme komut dosyası oluşturmaması mantıklı olacaktır, ancak kapanış etiketinin yakınındaki komut dosyasının görünen konumu, hala beni utandırıyor. Bu davranışı öneren hiçbir belge bulamadım. Tüm bulabildiğim this idi.
- bir 'geri gönderme denetimi' ekleyin ve css aracılığıyla gizli (değil Görünür özellik) görünürlüğünü ayarlayın. Örneğin.
<asp:LinkButton ID="RequirePostBackScriptLink" runat="server" style="display:none;" />
(kullanıyorum) - Kontrolü
Page.RegisterRequiresPostBack
'a ekleyin veIPostBackDataHandler
arabirimini uygulayın. @Jonathan_Bates görevinden belirtildiği gibi
Son olarak, yapılacak doğru şey load
(veya ready
Eğer Jquery kullanıyorsanız) için bir olay işleyicisi olan bir işlev içinde __doPostBack
başvurusunu akıtmaktır. Bu şekilde, __doPostBack
komut dosyasının gerçek yerleşimine bağlı olmaya gerek yoktur.
Bu konuda, daha önce bahsettiğim, davranış hakkında daha fazla bilgi sağlayabilmesi harika olurdu. sayfa önceden tanımlanmış bir noktada istemci komut dosyası blokları ve başlatma komut dosyalarını enjekte oysa
Evet, temel olarak varsayılan __doPostBack işlevini "kaçırdığı" ve daha sonra geri gönderimi bir geri çağırma yoluyla çağıran bir komut dosyası içeren bir denetim için budur. Ama haklısınız, bir şekilde 'geri gönderim denetimleri' olup olmadığına (ImageButton ve asp.net Düğme denetimleri hariç, bir düzenli gönderiyi kullanıp aynı sayfaya geri gönderildiklerinden) bağlı. Gözlemlediğim şudur: Sayfada herhangi bir 'geri gönderme denetimi' yoksa, komut dosyası bloğu kapanış form etiketinin yanında (veya okuduğumdan, oluşturulmadığından) oluşturulur. Bu gözlemi doğrulamak için belgelere bakıyorum. –