Fragensteller
ascx in einem Updatepanel aktualisieren

Allgemeine Diskussion
-
Hi,
Ich habe ein registriertes ascx (Prefix uc1, Tagname MyHeader) und ein Gridview in einem Updatepanel (UPanel1).
Wenn ich nun auf ein Row im Gridview klicke (SelectionChanged), möchte ich dass sich das ascx MyHeader aktualisiert.Wie kann ich das im Codebehind lösen?
Wie "refreshe" ich das ascx Control im Updatepanel?Gruss und Dank
Philippe- Typ geändert Robert BreitenhoferModerator Mittwoch, 4. April 2012 08:34 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Du kannst dem UpdatePanel Steuerelemente als Trigger zuweisen und das Ereignis auswählen welches das Updaten auslösen soll.
z.b.
<asp:UpdatePanel ID="UPanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>Du kannst das UpdatePanel aber auch "zu Fuß" updaten mit der Methode, die passenderweise, Update heisst.
UPanel1.Update();
mfg
Shmoo
- Bearbeitet Lennart F Dienstag, 20. März 2012 12:11 Beispiel dran geknetet
-
Hallo P.Belloni,
Hat Dir die Antwort geholfen?
Grüße,
Robert
Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Habe vieles versucht, geht nicht.
Habe den Header in ein eigenes Updatepanel gesetzt. Trotz dass ich die Eigenschaft childrenastriggers="False" gesetzt habe, wird dieser beim Klick auf das GridviewRow im anderen Updatepanel ausgelöst und das FMUP_HeaderWoman.Update() wird serverseitig im (row)SelectionChanged nicht ausgelöst. Die Trigger-Version alleine geht auch nicht bzw. der Ablauf der Events ist für mich nicht geeignet, da dieser vor dem SelectionChanged ausgelöst wird.
Die Webseite liegt in einem iFrame, welches im Dotnetnuke-Portal eingebettet ist. Dem iFrame sollte es meines Wissens egal sein, ob Ajax Funktionen über ihm, also im Dotnetnuke, aktiviert sind oder nicht.
Kurz, ich weiss nicht wieso das FMUP_HeaderWoman.Update() nicht ausgelöst wird.
Hast du noch eine Idee? Gruss und Dank.
Hier mein Code gekürzt:
<Form id="FM_FORM" runat="server">
<asp:scriptmanager id="ScriptManager1" runat="server" EnablePartialRendering="True"></asp:scriptmanager>
<asp:updatepanel id="FMUP_HeaderWoman" runat="server" updatemode="Conditional" childrenastriggers="False">
<ContentTemplate>
<uc1:HeaderWoman ID="FM_HeaderWoman" runat="server" />
</ContentTemplate>
</asp:updatepanel>
<asp:updatepanel id="FMUP_Gridview" runat="server">
<ContentTemplate>
<dx:ASPxGridView ID="FM_GridViewTMI01_Persons" runat="server" AutoGenerateColumns="False"
DataSourceID="FMSQL_TMI01_Persons" EnableCallBacks="False" KeyFieldName="PID" Width="100%">
<Columns>
'......
</Columns>
</dx:ASPxGridView>
</ContentTemplate>
</asp:updatepanel>
<asp:updateprogress id="UpdateProgress1" runat="server" associatedupdatepanelid="FMUP_Gridview"
displayafter="1">
<ProgressTemplate>Load</ProgressTemplate>
</asp:updateprogress>
</form>Serverseitig:
ProtectedSubFM_GridViewTMI01_Persons_SelectionChanged(ByValsender AsObject, ByVale AsSystem.EventArgs) HandlesFM_GridViewTMI01_Persons.SelectionChanged
'SaveCurrentClickedData......
FMUP_HeaderWoman.Update()
EndSub -
ich bin mir nicht ganz sicher wann genau du das Update aufrufen möchtest, also was passieren soll damit es ausgelöst wird.
"Die Trigger-Version alleine geht auch nicht bzw. der Ablauf der Events ist für mich nicht geeignet, da dieser vor dem SelectionChanged ausgelöst wird."
möchtest du was bevor SelectedIndexChanged aufrufen?
dafür gibt es die SelectedIndexChanging Methode. In dieser Methode könntest du das Speichern (wie in deinem Beispiel) erledigen und das UpdatePanel mit dem Event SelectedIndexChanged aktualisieren lassen, denn da sollte er mit dem speichern fertig sein.
void CustomersGridView_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
{
GridViewRow row = CustomersGridView.Rows[e.NewSelectedIndex];
SaveMethode(row);
}
<Triggers>
<asp:AsyncPostBackTrigger ControlID="FM_GridViewTMI01_Persons" EventName="SelectedIndexChanged" />
</Triggers>
Bin mir allerdings nicht sicher ob ich nicht gerade was übersehe bzw. verpeile.
-
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.