代码如下:
   If Not IsPostBack Then
            '取得参数,并刷新表单
            MyBody.Attributes.Add("onload", "document.Form1.TextBox1.value=window.parent.dialogArguments;document.Form1.submit();")
   Else
       以参数为条件的数据查询代码....
       如:"select * from mytables where code='" & textbox1.text & "'"
   end if
  很奇怪,我在第一次这样写应用于一个表单的时候,结果是正确的。可后来其他表单,同样的代码,为什么会一直刷新页面啊?
  当第一次打开页面时,取得参数并赋值给textbox1,但这时后台代码并不能识别textbox1的值,必须要提交页面后,textbox1的值才能使用。
  是不是有其他更好的办法啊?

解决方案 »

  1.   

    If Not IsPostBack Then
                '取得参数,并刷新表单
                MyBody.Attributes.Add("onload", "document.Form1.TextBox1.value=window.parent.dialogArguments;")
       Else
           以参数为条件的数据查询代码....
           如:"select * from mytables where code='" & textbox1.text & "'"
       end if  如果这样写,第一次页面页面为空(页面内容为数据查询绑定的datagrid),texbox1有值,当然再次提交页面,数据就有了。
      是不是document.Form1.submit();提交的方法不正确啊?可为什么我的另一个页面又可以呢?
    试了很多次了,太奇怪了!!
      

  2.   

    页面加一个hidden控件保留返回值Private Sub lbtnCompany_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbtnCompany.Click
        Dim sb As New System.Text.StringBuilder
        Dim strURL As String    Try
            strURL = "strValue=window.showModalDialog('ish_n_F_Company.aspx',null,'dialogWidth:347px;dialogHeight:418px;help:no;toolbar:no;location:no;directories:no;status:no;menubar:no;scrollbars:no;resizable:no');"
            strURL += "document.ish_n_Order2_Form.hidPostCD1.value = strValue;"
            strURL += "document.ish_n_Order2_Form.submit();"
            sb.Append("<script language='javascript'>" + vbCrLf)
            sb.Append("var strValue;" + vbCrLf)
            sb.Append(strURL + vbCrLf)
            sb.Append("</script>")
            Page.RegisterStartupScript("stp", sb.ToString)
        Catch ex As Exception
            ISH_NShowSystemError(Me, ex.Message.ToString())
        End Try
    End Sub
      

  3.   

    谢谢  q_po_o(两个人) 的回复,
    我的问题是对框话在接收到参数后的取值。
      

  4.   

    是不是document.Form1.submit();提交的方法不正确啊?可为什么我的另一个页面又可以呢? 是,不用加这个。你这不是死循环了么。 submit之后,onload事件就会再次触发,然后又submit... 如此循环。
      

  5.   

    何苦,直接用Javascript在aspx里写吧。全搬到代码分离里,也不是好事。该客户端完成的事,还是让客户端完成吧。
      

  6.   

    那我取得传入值的这句应该怎么写呢?
    window.parent.dialogArguments的值可以在后台代码里直接引用吗?
      

  7.   

    非要在后台代码写么?赫赫,你可以在aspx里写javascript啊。
      

  8.   

    因为要通过传入值来生成sql查询填充datagrid的模版列,javascript怎么填充datagrid啊?