首先我通过openwindow这个类定义了“打开”和“关闭”两种方法。打开
********************
public static string Modalwindow(string openAspxPage,int width,int height)
{
StringBuilder js=new StringBuilder();
js.Append("<script language=\"JavaScript\">");
js.Append(string.Format("window.showModalDialog(\"{0}\",window.document.all,\"status:false;dialogWidth:{1}px;dialogHeight:{2}px\")",openAspxPage,width,height)+";");
    js.Append("</script>");
    return js.ToString();
}
***********************************
关闭
***********************************
public static string ClosePage()
{
StringBuilder js = new StringBuilder();
js.Append("<script language=\"JavaScript\">");
js.Append("alert(window.dialogArguments.name1.value);");
js.Append("window.close();");
js.Append("</script>");
return js.ToString();
}***************************************************
现在开始介绍我的两种方法在index.aspx中有两个空间“button1”web按钮控件
和<INPUT id="name1" type="text" value="132132123" name="name1">文本框。第一种方法
通过this.Button1.Attributes.Add("onclick","javascript:window.showModalDialog(\"WebForm1.aspx\",window.document.all)");当点击button1时弹出一个模式对话框第二种方法
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write(openwindow.Modalwindow("WebForm1.aspx",500,500));

}
通过button1的单击事件来弹出一个模式对话框。************************************************
在WebForm1.aspx中有一个button1按钮,通过他的单击事件来获得index.aspx中name1的value值
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write(openwindow.ClosePage());
}
**************************************************但是经调试,第一种方法正确,  第二种方法当点击WebForm1.aspx中的button1按钮时提示window.dialogArguments.name1.value对象为空或不存在。
我怎么也分析不出到底有什么不同,希望大家帮帮我。

解决方案 »

  1.   

    对话框通过window.dialogArguments来取得传递进来的参数的
      

  2.   

    to   aoyo(遨游~ 认真生活,努力微笑^_^) 我接受参数的方法一样,
    无非是打开弹出窗口时,一个是用this.Button1.Attributes.Add("onclick","javascript:window.showModalDialog(\"WebForm1.aspx\",window.document.all)");另一个是用Response.Write(openwindow.Modalwindow("WebForm1.aspx",500,500));我认为这两种传参不是都一样嘛
      

  3.   

    你的问题不是上面的语句问题
    你看看下面代码,理解一下window.dialogArguments
    test1.htm
    < script>
      var mxh1 = new Array("mxh","ee","ee")
      var mxh2 = window.open("about:blank","window_mxh")
      // 向对话框传递数组
      window.showModalDialog("test2.htm",mxh1)
      // 向对话框传递window对象
      window.showModalDialog("test3.htm",mxh2)
    < /script>test2.htm
    < script>
      var a = window.dialogArguments
      alert("您传递的参数为:" + a)
    < /script> 
      

  4.   

    那为什么第一种方法正确呢?
    我传递的是window.document.all是一个对象,那么window.dialogArguments也应该是一个对象,通过window.dialogArguments.name1.value不就可以得到name1的value值了吗能帮我改改第二种方法吗?