在B.aspx页面的DBgrid中,点击“查看”,弹出一个详细信息窗体a.aspx,然后我
把a.aspx又关掉,接着点击IE浏览器的刷新工具刷新B.aspx页面时,自动又弹出a.aspx,请问我如何杜绝这种情况?相关代码如下:B.aspx的HTML页:<asp:datagrid id="dgd" runat="server" AutoGenerateColumns="False"
CellPadding="1" DataKeyField="ID">
<Columns>
<asp:ButtonColumn Text="修改" CommandName="Select"></asp:ButtonColumn>          <asp:ButtonColumn Text="查看" CommandName="Query"></asp:ButtonColumn>
</Columns>
</asp:datagrid></TD>后台代码:
#region 修改/查看
private void dgd_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
      SUBID=(((Literal)e.Item.Cells[1].FindControl("SUBShow")).Text);
      string cmd =e.CommandName;
      if(cmd == "Select")
        {
         }
      if (cmd == "Query")
        {
this.Response.Write("<script language=javascript>window.open('a.aspx?ID="+dgd.DataKeys[e.Item.ItemIndex].ToString().Trim()+"',null);</script>");
        }
#endregion

解决方案 »

  1.   

    谢谢楼上,但是弹出窗口肯定要点击dbgrid,请问如何判断呢
      

  2.   

    弹出窗体放在:
    if(!Page.IsPostBack )
    {
    }
    里面。
      

  3.   

    放在:
    if(!Page.IsPostBack )
    {
    }
    里面干脆一次也不弹了
      

  4.   

    private void dgd_ItemDataBound(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)foreach(DataGridItem dgi in this.dgd.Items)
    {
      LinkButton lbtn = (LinkButton)dgi.FindControl("lbtnDelete");
      lbtn.Attributes.Add("onclick","openwindow(" + id + ")");
    }
    id 是你传的参数
    然后写一个javascript函数openwindow(id)
      

  5.   

    谢谢书生意气,请问javascript函数openwindow(id)
    是写在HTML页面中还是后台代码页呢,如果是HTML页中,在dbgrid事件中能调用吗
      

  6.   

    谢谢大家,问题已经解决.加了一句代码就OK了.  if (cmd == "Query")
            {
    this.Response.Write("<script language=javascript>window.open('a.aspx?ID="+dgd.DataKeys[e.Item.ItemIndex].ToString().Trim()+"',null);</script>");
    this.Response.Write("<script>window.location.href=window.location.href;</script>");   // 防止主页面刷新重复弹出查看窗体的问题
            }