2010-02-08 11 views
8

मैं अपने प्रोग्रामिंग के लिए सी # का उपयोग कर रहा हूं।समस्या - अद्यतन पैनल में कोई छुपा फ़ील्ड अद्यतन नहीं किया गया है

मुझे समस्या का सामना करना पड़ रहा है, कि मेरे छिपे हुए चर मान को अद्यतन पैनल में अद्यतन नहीं किया जा रहा है। कृपया aspx के लिए कोड नीचे देखें:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <asp:Timer ID="Timer1" runat="server" Interval="10000" OnTick="Timer1_Tick"> 
     </asp:Timer> 
     <input type="hidden" runat="server" id="hidCurrentDate" value="" /> 
     <input type="hidden" runat="server" id="hidTripIds" value="" /> 
     <input type="hidden" runat="server" id="hidTripDetails" value="" /> 

<asp:UpdateProgress ID="uprogTrips" runat="server"> 
      <ProgressTemplate> 
       <span style="display: block; text-align: center"> 
        <p style="font-family: Verdana; font-size: larger; font-weight: bold;"> 
         <img src="../../Images/ajax-loader.gif" alt="Processing..." /><br /> 
         <br /> 
         Processing...</p> 
       </span> 
      </ProgressTemplate> 
     </asp:UpdateProgress> 
     <asp:UpdatePanel ID="upTripsGrid" runat="server" UpdateMode="Always"> 
      <ContentTemplate> 
       <asp:GridView ID="gvAllTrips" runat="server" OnRowDataBound="gvAllTrips_RowDataBound" 
        OnPageIndexChanging="gvAllTrips_PageIndexChanging" AllowPaging="true" AutoGenerateColumns="false"> 
        <PagerSettings Mode="NumericFirstLast" PageButtonCount="35" Position="TopAndBottom" /> 
        <PagerStyle CssClass="GridPager" />      
       </asp:GridView> 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
       <asp:AsyncPostBackTrigger ControlID="ddSortBy" EventName="SelectedIndexChanged" /> 
       <asp:AsyncPostBackTrigger ControlID="ddFilterBy" EventName="SelectedIndexChanged" /> 
       <asp:AsyncPostBackTrigger ControlID="cbPageOptions" EventName="CheckedChanged" /> 
      </Triggers> 
</asp:UpdatePanel> 

और नीचे दिए गए कोड, जहां मैं अपने सीएस कोड के साथ छिपी हुई फ़ील्ड में से एक अद्यतन करने के लिए कोशिश कर रहा हूँ है।

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

protected void Timer1_Tick(object sender, EventArgs e) 
{ 
    DataTable dtTrips = null; 
    WEX.Prototype.Data.TripDA tripDA = new WEX.Prototype.Data.TripDA(); 
    string tID = hidTripIds.Value; 
    string[] tripIDs = new string[1000]; 
    tripIDs = tID.Split(','); 


    foreach (string tripID in tripIDs) 
    { 
     TripSummaryBO tripSummaryBO = tripDA.getTripSummary(Convert.ToInt32(tripID)); 
     if (tripSummaryBO.tripLastEditedOnDate > Convert.ToDateTime(hidCurrentDate.Value)) 
     { 

      WEX.Prototype.Service.WSProxies WSProxies = new WEX.Prototype.Service.WSProxies(); 
      dtTrips = WSProxies.Build(); 
      Session["AllTrips"] = dtTrips; 
      dtTrips = (DataTable)Session["AllTrips"]; 
      if (dtTrips != null) 
      { 
       if (cnt==0) 
       { 
        hidTripDetails.Value = ("Trip name-" + tripSummaryBO.tripName + " was modified by user " + tripSummaryBO.tripLastEditedBy); 
       } 
       else 
       { 
        hidTripDetails.Value = hidTripDetails.Value + " <br/> " + ("Trip name-" + tripSummaryBO.tripName + " was modified by user " + tripSummaryBO.tripLastEditedBy); 
       } 
       BuildGridViewControl(dtTrips); 
       cnt = cnt + 1; 
      } 
     } 
     else 
     { 
      //upTripsGrid.Triggers.Clear(); 
      PageInit(); 
     }    
    } 
} 

सुझाव दें

धन्यवाद:

यहाँ मेरी aspx.cs कोड है।

उत्तर

18

आपके छिपे हुए इनपुट फ़ील्ड अपडेट पैनल नियंत्रण में नहीं हैं। सर्वर के लिए एसिंक्रोनस राउंड ट्रिप केवल यूआर पर अपडेट करने के लिए UpdatePanel के भीतर ही उन नियंत्रणों का कारण बनेंगे, भले ही कोड-बैक छिपा हुआ फ़ील्ड चलाता है और अपडेट करता है, फिर भी वे अंत में रहते हैं क्योंकि वे पैनल के बाहर बैठते हैं ।

<ContentTemplate> टैग के भीतर छिपा क्षेत्रों ले जाने का प्रयास:

<asp:UpdatePanel ID="upTripsGrid" runat="server" UpdateMode="Always"> 
    <ContentTemplate> 
     <input type="hidden" runat="server" id="hidCurrentDate" value="" /> 
     <input type="hidden" runat="server" id="hidTripIds" value="" /> 
     <input type="hidden" runat="server" id="hidTripDetails" value="" /> 
     .... 
    </ContentTemplate> 
</asp:UpdatePanel> 
सही पैसा
+1

। ध्यान दें कि यदि आप छुपे हुए फ़ील्ड को गतिशील रूप से जोड़ना चाहते हैं तो आपको ContentTemplateContainer की आवश्यकता है: UpdatePanel.ContentTemplateContainer.Controls.Add (hiddenFieldX); और इसे बाद में उपयोग करने के लिए: पैनल। सामग्री टेंप्लेट कंटैनर। नियंत्रण। ओफटाइप ()। सबसे पहले(); – jinsungy

+0

अच्छी चीजें पर –

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