【发布时间】:2010-11-19 08:20:51
【问题描述】:
我有一个 ModalPopupExtender,它允许客户应用付款信息。它一直工作得很好。然后客户要求在 ModalPopup 上查看应付总额。仅从父控件中获取应得的总额并将其传递给 ModalPopup 控件似乎没什么大不了的。似乎没有简单的方法可以做到这一点。
这是我的 HTML 代码,请记住此代码包含在 UpdatePanel 中
<asp:LinkButton ID="lnkMakePayment" runat="server" Visible="true" OnClick="lnkMakePayment_Click" >
<asp:Label ID="lblMakePayment" runat="server" Text="Make Payment"/></asp:LinkButton>
<asp:Button ID="btnDummy" style="display: none;" runat="server"
OnClick="btnDummy_Click" />
<ajaxToolkit:ModalPopupExtender ID="mdlPopupPayment" runat="server"
TargetControlID="btnDummy" PopupControlID="pnlMakePayment"
CancelControlID="popUpCancel" DropShadow="true" BackgroundCssClass="modalBackground">
</ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="pnlMakePayment" runat="server" Style="display: none;"
SkinID="PopUpPanel" class="ContentBoxColor" Width="400px" Height="170px">
<MP1:MakePaymentPopup ID="MakePayment" runat="server" />
<div style="text-align: right; width: 100%; margin-top: 5px;">
<asp:Button ID="popUpCancel" runat="server" Text="Cancel" Width="0px" />
</div>
</asp:Panel>
下面是代码隐藏
protected void btnDummy_Click(object sender, EventArgs e) { }
protected void lnkMakePayment_Click(object sender, EventArgs e)
{
mdlPopupPayment.Show();
}
因此,当用户单击付款链接时,ModalPopup 可以正常工作。它甚至会触发父控件侦听的事件,以应用付款信息以及用户在弹出窗口中填写的所有相关付款详细信息。同样,这一切都很好。
由于 ModalPopup,我第一次尝试发送总数如下:
protected void lnkMakePayment_Click(object sender, EventArgs e)
{
// MakePayment is the actual ModalPopup control and total due is a public property
MakePayment.TotalDue = txtTotalDue.Text
mdlPopupPayment.Show();
}
问题在于,当我单击链接以显示 ModalPopup 时,PageLoad 事件不会触发,因此我无法将我的属性分配给 ModalPopup 内的标签。 我什至尝试使用会话对象,但遇到了同样的问题。 我什至无法访问数据库,因为我无法传递客户 ID。 有任何想法吗? 我是 Javascript 的新手,喜欢服务器端的灵魂,但在这一点上,我愿意尝试任何东西。
MakePayment 用户控件包含 3 个 asp 文本框。一个供用户输入付款金额,另一个用于付款类型,第三个用于输入支票号码等注释。控件上还有一个应用和取消按钮。父控件是一个基本的 ascx 页面,它是一个包含 ModalPopupExtender 和激活它的所有 html 代码的数据输入屏幕。
【问题讨论】:
标签: c# html asp.net-ajax