2010-07-13 16 views
11

मेरे पास लिंकबूटन (पेजिंग के लिए उपयोग किया गया) और अद्यतन पैनल के अंदर दोहराने वाला उपयोगकर्ता नियंत्रण है। पेजिंग सही तरीके से काम करता है, लेकिन जब भी मैं अगले पृष्ठ पर क्लिक करता हूं तो पूर्ण पृष्ठ पोस्टबैक होता है।अद्यतन पैनल के अंदर उपयोगकर्ता नियंत्रण पूर्ण पृष्ठ पोस्टबैक

<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always"> 
     <ContentTemplate> 
      <asp:Repeater ID="rptOrganizations" runat="server"> 
       <HeaderTemplate> 
        <table> 
         <thead> 
          <tr> 
           <th>Organization</th> 
           <th>State</th> 
           <th>Accredited Since</th> 
          </tr> 
         </thead> 
        </table> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <tr> 
         <td> 
          <asp:Literal ID="ltlInstitution" runat="server" /> 
         </td> 
         <td> 
          <asp:Literal ID="ltlState" runat="server" /> 
         </td> 
         <td> 
          <asp:Literal ID="ltlAccreditedDate" runat="server" /> 
         </td> 
        </tr> 
       </ItemTemplate> 
       <FooterTemplate> 
        </table> 
       </FooterTemplate> 
      </asp:Repeater> 

      <uc2:RepeaterPaging ID="rpPager" runat="server" PageSize="10" OnNextButtonClickEvent="btnNext_Click" OnPreviousButtonClickEvent="btnPrev_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

और उपयोगकर्ता नियंत्रण की सामग्री को इस तरह दिखेगा:

<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> | 
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton> 

&nbsp;&nbsp; 
<asp:Literal ID="ltlNumResults" runat="server" /> results returned. 

अब तक, मैं उपयोगकर्ता के लिए एक async पोस्टबैक ट्रिगर जोड़ने की कोशिश की है

अद्यतन पैनल इस तरह दिखता है नियंत्रण, जो एसिंक पोस्टबैक का कारण बनता है लेकिन अद्यतन पैनल में शेष पाठ को अद्यतन नहीं करता है। अन्य शब्दों में, async पोस्टबैक होता है और अगला पृष्ठ दिखाई देता है, लेकिन पुनरावर्तक में मूल पाठ इसके ठीक नीचे भी है।

मैंने यह भी पुष्टि की है कि मेरे पास मेरे लिंकबटन पर आईडीएस सेट है, क्योंकि यह एक अपडेट पैनल के अंदर एक पूर्ण पोस्टबैक ट्रिगर कर सकता है।

मैंने अपडेट पैनल मोड (हमेशा, सशर्त, बच्चे एट्रिगर्स इत्यादि) को बदलने की कोशिश की है।

इसमें से कोई भी कोई फर्क नहीं पड़ता - एकमात्र चीज जो वास्तव में एसिंक पोस्टबैक का कारण बनती है, ट्रिगर का उपयोग करना है, लेकिन फिर अद्यतन पैनल में शेष सामग्री अद्यतन नहीं होती है, इसलिए मुझे डुप्लिकेट सामग्री मिलती है। कोई विचार?

+0

लिंकबटन पर आईडी की कमी के बारे में जानकारी के बारे में जानकारी के बारे में जानकारी, मेरे लिए उपयोगी है, चीयर्स! – paulH

उत्तर

15

पूर्ण पोस्टबैक तब होता है जब आपका अपडेटपैन <div> पर अपनी सामग्री प्रस्तुत नहीं कर सकता (उदाहरण के लिए, जब यह <tr> के अंदर स्थित होता है)। तो आप अपडेटपैनल के अंदर एचटीएमएल की जांच करें, आपको वहां जवाब मिल सकता है (भी, गलत ग़लत तत्वों की तरह कुछ गलत xhtml देखें)।

+0

यह था! यदि आप हेडर टेम्पलेट के अंदर देखते हैं, तो मैंने गलती से टैग को बंद कर दिया है, इसे पाद लेख में बंद करने के बजाय। जैसे ही मैंने गलत गठित टैग हटा दिया, यह काम करना शुरू कर दिया। मुझे नहीं पता था कि अपडेट पैनल उस स्पर्शी था ... – Neil

+0

+1: मेरा अपडेट पैनेल सीधे टेबल टैग के अंदर रखा गया था, और जब इसे वहां से बाहर ले जाना चीजें काम करना शुरू कर दिया। धन्यवाद! –

0

अद्यतन मोड को हटाएं = "हमेशा" उस पर कुछ भी न डालें और इसे काम करना चाहिए।

एक और बात आप अपने पृष्ठ पर स्क्रिप्ट प्रबंधक जोड़ रहे हैं या नहीं?

स्क्रिप्ट मैनेजर के बिना यह काम नहीं करेगा।

+0

मुझे लगता है कि डिफ़ॉल्ट अद्यतन मोड हमेशा होता है - मैंने इसे हटा दिया, लेकिन इससे कोई फर्क नहीं पड़ता। स्क्रिप्ट मैनेजर वर्तमान में पृष्ठ पर जोड़ा गया है, न कि उपयोगकर्ता नियंत्रण के लिए। – Neil

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