私はこれがS.Oの他の多くの質問と似ていることを知っています。しかし、そのような状況には当てはまりませんし、問題を解決するものもありません。問題は私が必要に応じて他のコントロールを渡すモーダルポップアップコントロールを1つ持っていることです。ユーザーがUIのボタンをクリックすると、1つのコンテンツセットでそのモーダルを得ることができます。そして、別のボタンをクリックすると、別のコンテンツを取得します。モーダルポップアップに追加されたコンテンツからイベントを発生させようとするまでは、すべてうまくいきました。私はこの問題を解決するためにすべてを試したと言うことは全く正確ではありませんが、私はかなり試みました。私はこれを行うことができないと確信するようになっている、または私はいくつかの設定が間違っている。更新パネルの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>
ため、このコードでは、2つのイベントのトリガ、カレンダーの変更の一つですその日付、およびチェックボックス項目がオンになっているときのチェックボックス項目がチェックされます。
<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
もう一度、私は実際にこのようなことをしています(Web開発に関する経験はほとんどありません)。あなたに実際にあなたを示すための他のコードはありません... – Siegeon
あなたのユースケースが非常に多くのポップアップを持つためのものであるか分かりません。しかし、私は大きな成功とポップアップとして別々のページを読み込むIFrameモードと組み合わせてFancyBoxを使用している。必要に応じて、ポップアップからメインページにコールバックすることもできます。それはあなたが今やろうとしていることよりずっと簡単かもしれません.... – Danthar