我正在制作一个用户控件,整个控件都在更新面板中。我在 div 中放置了一个下拉列表(和其他一些东西),使 div 的显示为无,并在单击按钮后显示在 jquery 弹出窗口中。
问题是,当它不在该 jquery 弹出窗口内(并且从页面加载开始时可见)时,它可以无缝工作。但是在 jquery 弹出窗口中打开它后,它拒绝对 selectedindexchanged 做出反应。
以下是代码的重要部分:
加载控件的示例页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="homebed.aspx.cs" Inherits="txwebsite._testbed.homebed" %>
<%@ Register TagPrefix="tx" TagName="querycriteria" Src="../_userctrls/querycriteria.ascx" %>
该示例页面中的脚本管理器:
<asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" EnableViewState="true" runat="server"></asp:ScriptManager>
我的用户控件的第一行:
<%@ Control Language="C#" EnableViewState="true" AutoEventWireup="true" CodeBehind="querycriteria.ascx.cs"
Inherits="TelefileWebsite._userctrls.querycriteria" %>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="true" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddProvince_kharid" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
包含下拉列表的 div 的定义:
<div id="divContentToPopup" style="display:none;">
未触发 selectedindexchanged 并导致问题的下拉列表:
<asp:DropDownList ID="ddProvince_kharid" AutoPostBack="true"
CssClass="ddforpopup" style="margin-right:7px;" runat="server"
onselectedindexchanged="ddProvince_kharid_SelectedIndexChanged">
</asp:DropDownList>
selectedindex更改定义:
protected void ddProvince_kharid_SelectedIndexChanged(对象发送者,EventArgs e){
整个jquery代码:
$(function () {
// ---------------------------------------
// Popup opening
// ---------------------------------------
var fn_kharid_LoadGeoWindow = function (e) {
$(this).speedoPopup(
{
width: 598,
useFrame: false,
effectIn: "zoomIn",
effectOut: "slideZoom",
css3Effects: "zoomOut",
href: "#divContentToPopup"
});
}
var btnchooseregion_kharid = $('#btnChooseRegion_kharid');
btnchooseregion_kharid.click(fn_kharid_LoadGeoWindow);
}); // Document Ready
我检查了整个 stackoverflow 和许多其他网站,但没有一个提出解决方案: