将参数传递给 AJAX 模态弹出窗口?

Passing parameters to an AJAX modal popup?

所以在摸索之后,我在 AJAX 弹出窗口(使用 iframe)中有一个 aspx 页面 运行。但是,这个 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";
  }
}

希望对您有所帮助。