0

我的网页中有多个输入文本框参数,并且在“提交”按钮时,会加载多个 iframe。在第一次提交时,iframe 被正确加载。问题是,当它已经加载时,当我再次单击提交按钮时,iframe 被重新加载并导致浏览器模糊。如何停止加载 iframe,当它已经在按钮单击时加载.. Mycode as

 <asp:LinkButton ID="lnkBTNSubmit" runat="server" OnClick="lnkBTNSubmit_Click" OnClientClick="return validate();">
</asp:LinkButton>

我的 .cs 代码

protected void lnkBTNSubmit_Click(object sender, EventArgs e)
        {
    SetReportsUrlsToIFrame(ObjSharedEntities.RequestID);
    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ScriptRegistration", "setVisibility('hide', 'inline');", true);
        }

有什么建议么 ??

4

2 回答 2

0

如果您想在 iframe 已加载时禁用该按钮,则只需将按钮设置为禁用即可。

protected void lnkBTNSubmit_Click(object sender, EventArgs e)
    {
SetReportsUrlsToIFrame(ObjSharedEntities.RequestID);
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ScriptRegistration", "setVisibility('hide', 'inline');", true);
lnkBTNSubmit.Enabled=false;
//or lnkBTNSubmit.Visible=false;
    }

但是,如果您需要按钮像往常一样工作,并且您的页面中没有出现刷新(模糊),答案是:没办法。
原因很简单,你当然知道,我把它放在这里只是为了让我的答案完整。
当您单击提交按钮时,html (aspx) 页面将回传到服务器,您的浏览器将变为空。当服务器收到您的回发后,它会根据您的请求生成另一个更新的页面,并将新页面发送到您的浏览器。当您的浏览器收到新页面时,它会显示新内容。
在这个过程中,浏览器中显示的内容会发生如下变化:旧页面 -> 空白页面 -> 新页面。所以你会看到模糊和刷新。

于 2012-06-12T13:43:38.347 回答
0

试试这个作为你的 OnClick 方法

protected void lnkBTNSubmit_Click(object sender, EventArgs e)
{
    if(ViewState["iframesDisplayed"] == null || !(bool)ViewState["iframesDisplayed"])
    {
        SetReportsUrlsToIFrame(ObjSharedEntities.RequestID);
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ScriptRegistration", "setVisibility('hide', 'inline');", true);
        ViewState["iframesDisplayed"] = true;
    }

}
于 2012-06-12T13:21:43.557 回答