doPostback()没有正确刷新页面上的某些元素

时间:2014-09-22 15:53:30

标签: javascript vb.net postback dopostback

遇到以下问题:

我有一个HTML按钮,它会导致__doPostBack(button.ClientID,' texthere')。

Dim button As HtmlButton
button = CType(Me.btnButton, HtmlButton)
button.Attributes.Add("onclick", "__doPostBack('" & btnButton.ClientID & "', 'btnBBHistory');return false;")

在我的page_load中,我有以下内容:

Dim control_postback = Request("__EVENTARGUMENT")
    If control_postback = "texthere"
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "Script", "ShowWindow();", 
    End If

ShowWindow();使用showModalDialog显示javascript函数。

  Dim s As New StringBuilder
        s.Append("<script type=""text/javaScript"">")
        s.Append("function ShowWindow() {" & ControlChars.CrLf)
        '  s.Append("var result = window.showModalDialog('" & url & "','','dialogWidth:1200px;dialogHeight:450px;resizable:yes');" & ControlChars.CrLf)
        s.Append("var result = window.showModalDialog('" & url & "','','dialogWidth:1100px;dialogHeight:500px;resizable:yes;help:no;');" & ControlChars.CrLf)
        s.Append("if (result) { " & ControlChars.CrLf)
        ' s.Append("document.getElementById('" & lblwhatever.ClientID & "').innerHTML=result.fullline;" & ControlChars.CrLf)
        s.Append("if (result.text.length || result.quantity.length) { " & ControlChars.CrLf)
        s.Append("document.getElementById('" & txtwhatever.ClientID & "').value=result.text.concat(result.quantity);" & ControlChars.CrLf)
        s.Append("document.getElementById('" & txtqty.ClientID & "').value=result.quantity;" & ControlChars.CrLf)

        s.Append("__doPostBack()" & ControlChars.CrLf)
        s.Append("}" & ControlChars.CrLf)
        s.Append("}" & ControlChars.CrLf)
        s.Append("return false;" & ControlChars.CrLf)
        s.Append("}" & ControlChars.CrLf)
        s.Append("</script>")
        If Not ClientScript.IsClientScriptBlockRegistered("ShowWindow") Then
            ClientScript.RegisterClientScriptBlock(Me.GetType(), "ShowWindow", s.ToString())
        End If

这一切都正常,并显示带有生成的URL的对话框。但是,在原始网页(最初点击按钮以生成此对话框的网页)上,有一个图像(.djvu格式)。每当我的代码运行时,原始页面都会因为__doPostBack()而刷新,但在IE的某个版本(IE8和9到目前为止)中,图像不会重新加载。 showModalDialog是否有可能阻止在这些IE版本的后台进一步呈现页面,或者doPostBack()实际上没有以某种方式完成回发并且图像正在破坏?

感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

修正:我需要使用window.open而不是showmodaldialog,因为当使用showmodaldialog时,父/调用页面是(我相信)暂停/暂停/中断父页面的执行,直到子页面关闭为止