我知道这与S.O.上的许多其他问题类似。但他们似乎都不适用于这种情况,他们也没有解决问题。问题是我有一个Modal Popup Control,我根据需要传递其他控件。所以当用户点击我的用户界面上的一个按钮时,他可以用一组内容获取该模式,然后当点击另一个按钮时他会得到不同的内容。一切工作正常,直到我试图从添加到模式弹出窗口的内容中触发事件。说我已经尽力解决这个问题并不完全准确,但我已经尝试了很多。我越来越相信这要么不能完成,要么我有一些错误的设置。更新面板中的Modalpopup扩展器,谁控制不会触发的事件
这是此代码为更新面板
<input id="dummy" type="button" style="display: none" runat="server" />
<asp:ModalPopupExtender CancelControlID="Close" runat="server" ID="mpeThePopup" TargetControlID="dummy" PopupControlID="pnlModalPopUpPanel" BackgroundCssClass="modalBackground" PopupDragHandleControlID="Title" />
<asp:Panel ID="pnlModalPopUpPanel" runat="server" CssClass="modalPopup" Width="400px" Height="600px">
<asp:UpdatePanel ID="udpInnerUpdatePanel" runat="Server">
<ContentTemplate>
<table id="ContentTableTag" runat="server" cellpadding="0" cellspacing="0" style="width: 100%;
height: 100%;">
<tr>
<td id="Title" runat="server" style="background-color: rgb(79,82,90); text-align: left;
height: 28px; width: 90%; color: White;" nowrap="nowrap">
<h4 style="margin: 0px 0px 0px 5px;">
<asp:Label ID="LblSectionTitle" runat="server" Text="Modal"></asp:Label>
</h4>
</td>
<td id="Close" runat="server" style="background-color: rgb(79,82,90); text-align: right;
height: 28px; width: 10%" nowrap="nowrap">
<asp:ImageButton ID="ibClose" runat="server" Style="margin-right: 5px;" ImageUrl="~/WLImages/MLS/button_close.png"
ToolTip="Close" />
</td>
</tr>
<tr>
<td id="MainContentHolder" colspan="2" align="left" style="top: 0px; bottom: 100%;
vertical-align: top; width: 100%; height: 100%" />
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
这对于我加入到模式弹出的用户控件的代码,在其背景有两个事件触发,一个是当日历改变它的日期,还有一个用于检查复选框项目的时间。
<table id="mainContent" runat="server" visible="false" width="350" height="300">
<tr>
<td>
<asp:label ForeColor="White" runat="server" Text="Exam Date:" />
</td>
<td>
<asp:TextBox ID="txtDate" runat="server" Width="127" ForeColor="Black"
readonly="true" ontextchanged="txtDate_TextChanged"/>
<asp:CalendarExtender ID="CalendarExtender" runat="server"
PopupButtonID="ibtnCalendar" OnClientDateSelectionChanged="checkDate"
TargetControlID="txtDate" onload="LoadCalendar" />
</td>
<td>
<asp:ImageButton ID="ibtnCalendar" ImageUrl="../imgs/btn_calendar.png" Width="20px" runat="server" />
</td>
</tr>
<tr>
<td style="vertical-align: top; padding-top:5px">
<asp:label ForeColor="White" runat="server" Text="Study Days:" />
</td>
<td colspan="2" style="vertical-align: top; padding-top:5px">
<asp:CheckBoxList ID="WeekCheckBox" runat="server" ForeColor="White"
onselectedindexchanged="WeekCheckBox_SelectedIndexChanged">
<asp:ListItem Text="Monday" Value="1" />
<asp:ListItem Text="Tuesday" Value="2" />
<asp:ListItem Text="Wednesday" Value="3" />
<asp:ListItem Text="Thursday" Value="4" />
<asp:ListItem Text="Friday" Value="5" />
<asp:ListItem Text="Saturday" Value="6" />
<asp:ListItem Text="Sunday" Value="7" />
</asp:CheckBoxList>
</td>
</tr>
<tr>
<td>
<asp:label ForeColor="White" runat="server" Text="Study hours per day:" />
</td>
<td colspan="2">
<asp:TextBox ForeColor="Black" ID="tbStudyHours" runat="server" Width="127px" ReadOnly="true" />
</td>
</tr>
</table>
最后这是我如何将控制附加到模态。
private void GenerateCalendarPopup(ExamDateSelector eds)
{
pnlModalPopUpPanel.BackColor = GUI.Instance.GUIColorElement(GUIElements.color_main);
LblSectionTitle.Text = "Exam Date";
pnlModalPopUpPanel.Height = eds.ControlHeight + 40;
pnlModalPopUpPanel.Width = eds.ControlWidth + 25;
eds.ShowControl = true;
MainContentHolder.Controls.Add(eds);
}
谢谢你的帮助。
我不想创建30个左右独立的模式弹出窗口,弹出窗口在那里试图模仿我们的Windows软件。我没有试图用欺骗手段,只是一遍又一遍地复制同样的基本事物似乎很愚蠢。这就是说我可能不得不复制粘贴它。 – Siegeon 2012-01-27 22:05:55
然后,我真的在做这些东西(我几乎没有任何Web开发经验)。没有其他代码可以显示你真的... – Siegeon 2012-01-27 22:08:42
不知道你的用例是如何有这么多的弹出窗口。但我已经使用FancyBox与IFrame模式加载单独的页面作为弹出窗口取得巨大成功。如果需要,您也可以从弹出窗口回到主页面。这可能会更容易,那么你现在想做什么.... – Danthar 2012-01-27 22:11:28