Я нашел эту статью, которая могла бы помочь мне с проблемой, которую я сейчас имею. Проблема в том, что я с трудом пытаюсь заставить ее работать. В статье How to use ASP.NET AJAX UpdatePanel in ModalPopupПопытка сделать пример работы: Как использовать ASP.NET AJAX UpdatePanel в ModalPopup?
Так что я создал еще более простой пример, но проблема в том, что Label lblText
не обновляется (он остается с это метка), даже несмотря на то, отделенного кода в настоящее время выполняется, так как он попадает в точку останова , Поэтому любая помощь приветствуется.
Так вот разметка:
<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>
отделенного кода:
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();
}
Я делаю для себя тест и его работу, поэтому у вас есть ошибка JavaScript, которую вы можете найти: Откройте консоль браузера и посмотрите на ошибки. Другой способ, удалить временные ваши UpdatePanels, чтобы увидеть, на самом деле, что такое ошибка ... – Aristos
Вы использовали точный код, который я опубликовал? Потому что я просто пытался с Chrome и IE11, а 'lblText' не меняется после нажатия на' btnChooseProduct'. – rbhat
Да, я использую этот код, потому что он пропускает некоторый javascript, как бы я ни заставлял его работать. Сделайте то, что я вам скажу, откройте консоль, посмотрите на ошибки. – Aristos