Make update-panel-Komponente ändern der Sichtbarkeit des Elements außerhalb des update-Panels
Ich habe einen repeater und die Elemente sind änderbar über die Bearbeiten-Schaltfläche öffnet sich ein FormView in den edit-Modus. Das formView ist zunächst unsichtbar und der repeater sichtbar. Einmal Bearbeiten gedrückt ist der repeater geht unsichtbar dann die Formularansicht sichtbar wird, mit dem Element zu Bearbeiten.
Sobald änderungen vorgenommen wurden, drückt der Benutzer aktualisieren. Dies setzt die Formularansicht unsichtbar und der repeater sichtbar.
Das problem ist das formview geht unsichtbar, aber der repeater nicht sichtbar. Ich denke, dies ist durch die Tatsache verursacht, die formview ist in einem update-panel und den repeater nicht? Nur die Elemente, die in der update-panel werden verändert, die auf einen Klick auf update, weil es ist nur ein Teil der Seite aktualisiert wird.
Kann ich nicht setzen Sie den repeater innerhalb der update-panel, weil es eine Anforderung, dass die öffentliche Ansicht nicht javascript verwenden.
Weiß jemand wie ich das machen könnte den repeater wieder angezeigt?
<asp:Repeater id="resultsRepeater" runat="server" DataSourceID="vehiclesDataSource" >
<ItemTemplate>
<asp:Label id="makeLabel" runat="server" Text='<%# Eval("Make") %>' />
<asp:Button id="editButton" runat="server" Text="Edit" CommandArgument='<%# Eval("Id") %>' OnClick="EditButton_Click" />
</ItemTemplate>
<asp:Repeater>
<asp:UpdatePanel ID="updatePanel" runat="server">
<ContentTemplate>
<asp:Panel id="insertUpdatePanel" runat="server" Visible="false">
<asp:FormView id="editformview" runat="server" DataKeyNames="Id" Datasourceid="VehiclesEditDataSource" >
<EditItemTemplate>
<uc:VehiclesEdit ID="VehiclesEdit" runat="server" />
<asp:Button id="updateButton" runat="server" OnClick="Update_Click" />
</EditItemTemplate>
</asp:FormView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
protected void EditButton_Click(object sender, EventArgs e)
{
resultsRepeater.Visible = false;
insertUpdatePanel.Visible = true;
}
protected void Update_Click(object sender, EventArgs e)
{
resultsRepeater.Visible = true;
insertUpdatePanel.Visible = false;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies könnte helfen. Ich hatte ein ähnliches problem und dieses arbeitete für mich. Ich einfach verwendet ScriptManager-Steuerelement registrieren Sie die Taste (einmal iteriert (Zeile) als postback-Steuerelement wie diese:
Dies führte zu einem vollständigen postback und mir erlaubt, um die Sichtbarkeit der Stoffbahn außerhalb des update-Panels. Ich hoffe, es funktioniert!
ÜBERARBEITET: Fügen Sie eine PostBackTrigger zu Ihrem UpdatePanel zu zwingen, eine vollständige post-zurück, wenn der UpdateButton geklickt wird. Dies wird verstecken Sie Ihre UpdatePanel und zeigen Sie Ihre Repeater wieder. Finden Sie in der final-code unten:
Weitere Infos finden Sie unter: https://stackoverflow.com/questions/2545508/how-do-i-force-full-post-back-from-a-button-within-an-updatepanel