2012-01-05 33 views
5

में सही काम नहीं करता है मेरे पास एक ऐसा पृष्ठ है जहां मेहमानों का चयन किया जा सकता है।विज़ार्ड नियंत्रण के अंदर ग्रिडव्यू कस्टम पेजिंग एएसपीनेट

यह पृष्ठ, एक अद्यतन पैनल में शामिल है अद्यतन पैनल के भीतर वहाँ एक जादूगर नियंत्रण है और जादूगर नियंत्रण में वहाँ एक gridview है (पैनल-> ​​अद्यतन कक्ष -> जादूगर नियंत्रण -> gridview)

अब पेजिंग अच्छी तरह से काम नहीं करता है, मैंने जवाब के लिए इंटरनेट की खोज की लेकिन मुझे सही जवाब नहीं मिला। मैं कस्टम पेजिंग का उपयोग करता हूं।

जब मैं पेजनंबर (दूसरे या अंतिम पृष्ठ पर) बदलना चाहता हूं तो यह ठीक काम करता है। लेकिन जब मैं एक पंक्ति का चयन करना चाहता हूं या किसी अन्य पृष्ठ पर जाना चाहता हूं, तो ग्रिडव्यू सही काम नहीं करता है। जब मैं दूसरे या अंतिम पृष्ठ पर एक पंक्ति का चयन करता हूं (अन्य पृष्ठ काम नहीं करता) चयनित अतिथि (आइटम) हमेशा पहले पृष्ठ में से एक होता है। जब मैं किसी अन्य पृष्ठ में बदलना चाहता हूं (दूसरे या अंतिम पृष्ठ से) यह काम नहीं करता है और चयनित पृष्ठ पर रहता है।

क्या इस समस्या को हल करने का कोई तरीका है? कोड की

हिस्सा:

   <asp:Panel ID="PnlRe" Style="display: none; ... > 
    <asp:UpdatePanel ID="UpdtPnlDetail" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
     ... 
     <asp:Wizard ID="wzd" runat="server" ... > 
      ... 
      <asp:WizardStep ID="WizardStep3" runat="server" Title="Naam"> 
         ... 
          <asp:Gridview ID="Gridview1" runat="server" AutoGenerateColumns="False" 
           DataKeyNames="GastID,Versie" DataSourceID="odsGasten" EmptyDataText="...." 
           OnRowCommand="Gridview1_RowCommand" OnPageIndexChanging="Gridview1_PageIndexChanging" 
           OnPageSizeChanging="Gridview1_PageSizeChanging" OnSearching="Gridview1_Searching" 
           OnSorting="Gridview1_Sorting" OnRowDataBound="Gridview1_RowDataBound" 
           CausesValidation="False" meta:resourcekey="..." PagerType="Custom" 
           ShowFilter="True" ShowInsertRecord="True" ShowPageSizer="True" UseSubmitBehaviour="False"> 
           <Columns> 
            <asp:TemplateField ShowHeader="False" meta:resourcekey="..."> 
             <ItemTemplate> 
              <asp:ImageButton runat="server" CommandName="Select" CausesValidation="False" SkinID="uprowbutton" 
               ToolTip="..." ID="ImgBtnSelect" meta:resourcekey="..."> 
              </asp:ImageButton> 
             </ItemTemplate> 
            </asp:TemplateField> 
            ... Boundfields ... 
           </Columns> 
          </asp:Gridview> 
         ... 
        </asp:WizardStep> 
        ... 
    </asp:Wizard> 
    </ContentTemplate> 
</asp:UpdatePanel> 

protected void Gridview1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    this.odsGasten.FilterExpression = searchText; 
    this.Gridview1.DataBind(); 
    this.UpdtPnlDetail.Update(); 
} 
+2

आप एक सशर्त अपडेट पैनेल का उपयोग कर रहे हैं लेकिन मुझे कोई ट्रिगर नहीं दिख रहा है। क्या आपने उन्हें छोड़ दिया या क्या आपके पास कोई ट्रिगर्स पंजीकृत नहीं है? यदि आपको अपडेटपेनल को सशर्त के रूप में छोड़ने की आवश्यकता है, तो मुझे लगता है कि आपको पेजइंडेक्स चेंजिंग ईवेंट को ट्रिगर के रूप में पंजीकृत करने की आवश्यकता है। –

उत्तर

0

वहाँ इस लक्ष्य को हासिल करने के लिए एक मुश्किल रास्ता है, तो आप अपने डेटा स्रोत में हेरफेर करने के लिए है। उदाहरण के लिए यदि आप डेटाटेबल का उपयोग कर रहे हैं तो आपको डीटी के पहले दस तत्वों का चयन करना होगा और इसे ग्रिड में बांधना होगा, और जब अगला बटन क्लिक किया जाता है तो डीटी के अगले दस तत्व प्राप्त करें और इसे ग्रिडव्यू में बांधें। यह आपके काम को आसान बना देगा और आपके पृष्ठ के लिए अधिक प्रदर्शन प्राप्त करेगा।

0

मैं इसे देख सकता हूं। GridView1.DataBind() को GridView1_PageIndexChanging में बुलाया जाता है, लेकिन वर्तमान पेजेज इंडेक्स को उस पृष्ठ इंडेक्स के साथ संग्रहीत और अपडेट किया गया है जहां आप नेविगेट करना चाहते हैं और जब प्रक्रिया में यह हो रहा है?

0

मुझे लगता है कि आपके पास एक दृश्य समस्या है।

आपको यह सुनिश्चित करने की ज़रूरत है कि इनिट और लोड के बीच आपके पास ग्रिड का स्रोत सेट है, या तो व्यूस्टेट या नए बाइंडिंग से।