如何使用新页面作为弹出源创建弹出窗口?

时间:2011-08-27 23:59:38

标签: c# asp.net

我想在点击“createbutton”时弹出一个面板,我正在使用面板并在面板中添加一些文本框和按钮。我可以通过在存在createbutton的同一页面中设计它来制作弹出式面板。我可以在单独的页面中弹出窗口并在单击“创建”按钮时弹出它

2 个答案:

答案 0 :(得分:0)

不确定。您可以创建一个iframe,然后将源设置为您正在创建的面板。

假设您有两个html页面panel.html和main.html

您的panel.html可以只是

<html>
   <body style="background-color:red">
      Hi!
   </body>
</html>

和你的main.html

    <html>
    <body style="background-color:yellow">
        <iframe src="panel.html" style="height:300px;width:300px;border:0px;display:none;" id="myPanel"></iframe>
        <a href="#" onclick="document.getElementById('myPanel').style.display='block';return false">Show Panel</a>
    </body>
</html>

这应该显示一个带有“显示面板”超链接的黄页。当您单击“显示面板”时,它将显示您的panel.html的iframe。

如果您正在使用ASP.NET MVC,则可以通过创建可以使用某些Ajax / JQuery代码调用的View来完成此操作。如果你正在寻找这种方法的东西,我可以发布一些代码。

答案 1 :(得分:0)

戈库尔,

是的,您可以将面板放在单独的页面中,并在单击“创建”按钮时显示该面板。这是一个替代方案(不是我最喜欢的,但除了标准的javascript之外它不依赖于任何额外的东西):

  • 当您单击“创建按钮”时,将打开一个新的浏览器窗口,其大小完全调整以匹配面板的大小。这可以通过javascript轻松完成,如下所示:

      

    &LT;   输入onclick =“javascript:window.open('page.aspx','title','status = 0,toolbar = 0,width = 350,height = 250');”   type =“button”value =“创建”/&gt;

  • 在弹出的包含面板的页面上(pagecontainingPanel.aspx - 根据我的示例),您可以使用代码在执行某些操作后关闭窗口。例如,如果您有一个按钮,该按钮应该将一些数据保存到数据库并返回到父页面,您可以执行以下操作:

  

{

  ///Perform server side process. If successfully executed close this window. 
  protected void btnSubmit_Click(object sender, EventArgs e)
  if(EverythingOK) 
        { 
           StringBuilder cstext2 = new StringBuilder();
  cstext2.Append("<script type=\"text/javascript\"> function CloseMe() {");
  cstext2.Append("window.close();} </");
  cstext2.Append("script>");
  cs.RegisterStartupScript(cstype, csname2, cstext2.ToString(), false);
        } 

    }