2010-03-30 6 views

उत्तर

79

आप पूर्ण पोस्टबैक ट्रिगर करने वाले कार्यों को पंजीकृत करने के लिए UpdatePanel की Triggers संपत्ति का उपयोग कर सकते हैं।

उस संपत्ति पर PostBackTrigger ऑब्जेक्ट जोड़ें, जिसमें नियंत्रण की नियंत्रण आईडी शामिल है जिसे पूर्ण पोस्टबैक ट्रिगर करने की आवश्यकता है।

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> 
    <ContentTemplate> 
     ... 
    </ContentTemplate> 
    <Triggers> 
     <asp:PostBackTrigger ControlID="myFullPostBackControlID" /> 
    </Triggers> 
</asp:UpdatePanel> 
+0

मेरे पास एक इन्फ्राजिस्टिक्स अल्ट्रावेब्रिड है जिसमें एक कॉलम है जिसमें बटन होते हैं। मुझे एक समस्या थी जहां बटन पर क्लिक करने से उनके ईवेंट हैंडलर आग लग जाएंगे, जो बदले में ग्रिड को रीफ्रेश करेगा, लेकिन ग्रिड वास्तव में दूसरे क्लिक तक स्पष्ट रूप से ताज़ा नहीं होगा। बटन को अद्यतन पैनेल में डालकर और इन ट्रिगर्स को जोड़ने से समस्या हल हो गई। – tsilb

12
here से

:

एक अतुल्यकालिक पोस्टबैक करने के बजाय आप एक पोस्टबैक पैदा करने के लिए एक UpdatePanel के अंदर नियंत्रण सक्षम करने के PostBackTrigger नियंत्रण का प्रयोग करें।

<Triggers> 
    <asp:PostBackTrigger ControlID="controlID" /> 
</Triggers> 
+1

+1 - बहुत तेज़ @ असीम! – dugas

+0

हम्म हाँ, लेकिन अगर अपडेटपैनल के अंदर आपके पास पृष्ठ संख्याओं के साथ ग्रिड व्यू है तो काम नहीं करेगा। एक नए पेज में बदलें और ट्रिगर्स अब काम नहीं करते हैं। – Fandango68

42

बस इसे जोड़ना क्योंकि किसी और के पास नहीं है। उपर्युक्त तरीकों के बिना कोड की एक पंक्ति में कोड-बैक में ऐसा करना संभव है। सी #

ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID); 
+0

बहुत अच्छा, खोज के घंटों के बाद, आखिरकार एक समाधान जो काम करता है। मुद्दा यह था कि मेरे सभी नियंत्रण (अपडेट पैनल और बटन) कोड के पीछे बनाए जा रहे थे ताकि पोस्टबैक्रिगर सेट नहीं किया जा सके। धन्यवाद! – OverMars

+2

आपको सक्षम होना चाहिए।जब नियंत्रण बनाया जाता है तो आप अपने जवाब देने के लिए ट्रिगर बनाने के लिए AddHandler का उपयोग कर सकते हैं Subroutine – EvilDr

+0

बिल्कुल सही, यह इतना आसान और सही है, मैं लगभग शर्मिंदा हूं कि यह मेरे साथ कभी नहीं हुआ। हालांकि बहुत अच्छा .. – OverMars

0

मैं एक WebDataGrid के अंदर एक ImageButton का उपयोग कर एक ही समस्या थी

विजुअल बेसिक

ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID) 

: बस Page_Load में इस डाल दिया।

मैंने लाइन के बजाय वेबडैट्रिड के लिए प्रीरेंडर के अंदर एविल डीआर को रखा। महान काम किया!

for (int i = 0; i < wdgMyData.Rows.Count; i++) 
{ 
    ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel")); 
} 
0

इसका एक पुराने सवाल ही नहीं थोड़ी सूझबूझ से काम दृष्टिकोण के रूप में अच्छी तरह से है, जब सब कुछ अद्यतन पैनल में है और इसलिए है कि अपने document.ready कोड क्लिक पर काम करता है आप पूर्ण पोस्ट वापस करना चाहते हैं।

1. इस

function ResetDocumentReady() { 
     $("[id$=DummyButton]").click(); 
    } 

तरह अद्यतन पैनल के बाहर एक डमी बटन सामने के छोर पर समारोह बनाएं और इस

ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true); 

2. की तरह पीछे कोड से इसे क्लिक करें परिभाषित करें नोट: लेकिन सबसे अच्छा तरीका ट्रिगर का उपयोग कर रहा है, @Thibault Falise द्वारा पोस्ट किया गया उत्तर :)

संबंधित मुद्दे