Ich fand diesen Artikel, der mir mit einem Problem helfen konnte, das ich gerade habe. Das Problem ist, dass es mir schwer fällt, es zum Laufen zu bringen. Der Artikel ist How to use ASP.NET AJAX UpdatePanel in ModalPopupVersuch, Beispielarbeit zu machen: Wie man ASP.NET AJAX UpdatePanel in ModalPopup benutzt?
Also habe ich ein noch einfacheres Beispiel, aber das Problem ist, dass Label lblText
nicht aktualisiert wird (es bleibt bei ist dies das Label), obwohl der Code-Behind ausgeführt wird, da es einen Haltepunkt trifft . So wird jede Hilfe geschätzt.
Also hier ist das Markup:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="udpOutterUpdatePanel" runat="server">
<ContentTemplate>
<div id="divControlContainer" runat="server">
<asp:LinkButton ID="lbtnRed" runat="server" onclick="lbtnRed_Click">Red</asp:LinkButton>
</div>
<input id="dummy" type="button" style="display: none" runat="server" />
<ajaxToolkit:ModalPopupExtender runat="server"
ID="mpeThePopup"
TargetControlID="dummy"
PopupControlID="pnlModalPopUpPanel" />
<asp:Panel ID="pnlModalPopUpPanel" runat="server" style="border: 2px solid black; position:absolute; width:600px; height: 520px; display:none">
<asp:UpdatePanel ID="udpInnerUpdatePanel" runat="Server" UpdateMode="Conditional">
<ContentTemplate>
<p>
<asp:DropDownList ID="ddlProducts" runat="server"></asp:DropDownList>
<asp:Button ID="btnChooseProduct" runat="server" Text="Choose" onclick="btnChooseProduct_Click"/>
<asp:Button ID="btnCancelModalPopup" runat="server" Text="Cancel" />
</P>
<div style="width: 200px; border: 1px solid red">
<asp:Label ID="lblText" Text="this is the label" ForeColor="Black" runat="server"></asp:Label><br />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnChooseProduct" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
Code-Behind:
protected void btnChooseProduct_Click(object sender, EventArgs e)
{
lblText.Text = "You have selected " + ddlProducts.SelectedItem.Text;
//Show ModalPopup
mpeThePopup.Show();
}
protected void lbtnRed_Click(object sender, EventArgs e)
{
ddlProducts.Items.Clear();
//Populate DropDownList Items
ddlProducts.Items.Add(new ListItem("Red Balloon", "Red Balloon"));
ddlProducts.Items.Add(new ListItem("Red Apple", "Red Apple"));
ddlProducts.Items.Add(new ListItem("Red Shirt", "Red Shirt"));
ddlProducts.Items.Add(new ListItem("Red Watch", "Red Watch"));
mpeThePopup.Show();
}
Ich mache einen Test und seine Arbeit zu mir, also haben Sie einige Javascript-Fehler, die Sie als finden können: Öffnen Sie Ihre Browser-Konsole und sehen Sie nach Fehlern. Andernfalls entfernen Sie vorübergehend Ihre UpdatePanels, um tatsächlich zu sehen, was der Fehler ist ... – Aristos
Haben Sie den genauen Code verwendet, den ich gepostet habe? Weil ich gerade mit Chrome & IE11 versucht habe, und "lblText" ändert sich nicht, nachdem ich auf "btnChooseProduct" geklickt habe. – rbhat
ja ich benutze diesen Code, von cource, da es etwas Javascript vermisst, wie auch immer ich es arbeiten lasse. Mach was ich dir sage, öffne die Konsole, sieh nach Fehlern. – Aristos