[因此,经过一些摸索,我在AJAX弹出窗口中运行了一个aspx页面(使用iframe)。但是,此aspx页接受几个参数。该程序用于打开JavaScript弹出窗口以发送参数,如下所示:
string DeptID = ((User)Session ["User"]).UserDepartmentID.ToString();
string url = "EditTables.aspx?title=Edit Asset Manufacturers&prompt=Manufacturer Name&method=GetManufacturers&name=ManufacturerName&value=ManufacturerID&deptid=" + DeptID;
string script = "window.open ('" + url + "', 'popup_window', 'width=500, height=135, left=' + ((screen.width - 530) / 2) + ', top=' + ((screen.height - 80) / 2));";
ClientScript.RegisterStartupScript (this.GetType(), "script", script, true);
但是,由于我要转换为AJAX弹出窗口,因此当前代码如下:
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Test Button" />
<ajax:ModalPopupExtender
ID="mp1Manufacturer"
PopupControlID="Panl1"
runat="server"
BehaviorID="Button1_DropDownExtender"
DynamicServicePath=""
TargetControlID="Button1">
</ajax:ModalPopupExtender>
<asp:Panel ID="Panl1" runat="server" CssClass="Popup" align="center" style = "display:none">
<iframe style=" width: 500px; height: 500px;" id="irm1" src="EditTables.aspx?title=Edit Asset Manufacturers&prompt=TEST&method=GetManufacturers&name=ManufacturerName&value=ManufacturerID&deptid=c9c1f7ff-65bc-4687-90bb-39488db508b4" runat="server"></iframe>
<br/>
<asp:Button ID="Button2" runat="server" Text="Close" />
</asp:Panel>
注意src页面的硬编码值。这对于页面的可重用性不可行。有没有办法从服务器端调用此AJAX弹出窗口,并通过我在页面后面的代码提供参数?
从您的代码
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Test Button" />
<ajax:ModalPopupExtender
ID="mp1Manufacturer"
PopupControlID="Panl1"
runat="server"
BehaviorID="Button1_DropDownExtender"
DynamicServicePath=""
TargetControlID="Button1">
</ajax:ModalPopupExtender>
<asp:Panel ID="Panl1" runat="server" CssClass="Popup" align="center" style = "display:none">
<%-- using the scripting tag below, you use the IFrameSrc property on your code behind behind to render the correct URL. --%>
<iframe style=" width: 500px; height: 500px;" id="irm1" src="<%=this.IFrameSrc%>"></iframe>
<br/>
<asp:Button ID="Button2" runat="server" Text="Close" />
</asp:Panel>
然后在后面的代码中。
public String IFrameSrc
{
get
{
//Here you get a chance to manipulate the string in the code behind however you see fit.
return "EditTables.aspx?title=Edit Asset Manufacturers&prompt=TEST&method=GetManufacturers&name=ManufacturerName&value=ManufacturerID&deptid=c9c1f7ff-65bc-4687-90bb-39488db508b4";
}
}
我希望这会有所帮助。