Używam C# do mojego programowania.Problem - żadne ukryte pole w Panelu aktualizacji nie jest aktualizowane
Mam do czynienia z problemem, że moja ukryta wartość zmiennej nie jest aktualizowana, gdy jest w panelu aktualizacji. Proszę zobaczyć poniżej kod do 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>
i poniżej jest kod gdzie staram się aktualizować jednego pola ukrytego z mojego kodu CS.
Interesujące, gdy próbuję debugować jego pokazano wszystkie wartości, jednak gdy widzę go na stronie źródła nie daje żadnej wartości.
Oto mój kod aspx.cs:
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();
}
}
}
Proszę zaproponować
Dzięki.
prawo na pieniądze – jinsungy
dobrych rzeczy. zauważ, że jeśli chcesz dynamicznie dodawać hiddenField, potrzebujesz ContentTemplateContainer: updatePanel.ContentTemplateContainer.Controls.Add (hiddenFieldX); i znaleźć go później użyć: panel.ContentTemplateContainer.Controls.OfType() .First(); –