一个A.aspx文件是用DataGrid构成的表,用HyperLinkColumn连接到另外一个B.aspx文件在B.aspx中通过
    <td>购买日期</td>
    <td><%=dr["gmrq"]%></td>
这种方式来显示数据。
并且在B.aspx中添加了个按钮,起删除作用。
点击按钮后,数据表中该记录也删除掉了。
我是这样删除的:
newid = Request.Params["id"];
string SQLStr="Delete jbxx WHERE bh="+newid;
myComm.ExecuteNonQuery();
但是我的屏幕没变化,我希望显示下一笔记录或者第一笔记录。
系统提示:
在位置 0 处没有任何行。
dr = ds.Tables["jbxx"].Rows[0];
我知道应该刷新,但我不会,请求各位帮帮忙。

解决方案 »

  1.   

    你删除了,肯定是会显示在0处没有任何行的。
    你可以在删除后,把页面又转到本页,这样就可以刷新吧,我以前用ASP是这样的,ASP。NET没用过。
      

  2.   

    Request.Params["id"]这条记录已经被删除
    需要刷新页面重新点击HyperLinkColumn再传一个ID..
    如果是window.open();
    在你的删除代码后面加上:
    Response.Write("<script language='javascript'>");
    Response.Write("    if (window.opener) { window.opener.location.reload();  window.close(); }"); 
    Response.Write("</script>");
      

  3.   

    我这个页面是从DataGrid表中直接读取数据的,难道还要从新进行数据库绑定吗?
      

  4.   

    如果你仅仅在B.aspx页面中只做删除操作的话
    直接在A.aspx里面做不就可以了吗?
    删除一条记录之后DataGrid当然要重新绑定....
      

  5.   

    newid = Request.Params["id"];
    string SQLStr="Delete jbxx WHERE bh="+newid;
    if myComm.ExecuteNonQuery()>0
    {
        //重指向B.aspx?id='第一条记录或下一条记录的ID'页面
    }
        
      

  6.   

    当然在B.aspx中还有其他一些处理,删除操作只是一部分。
    DataGrid绑定我是在A.aspx中进行的,在B.aspx中只是读取了数据,并没有DataGrid控件。
      

  7.   

    我在A.aspx中是这样的:
    DataNavigateUrlFormatString="B.aspx?id={0}"
    //重指向B.aspx?id='第一条记录或下一条记录的ID'页面
    这一句该怎样写呢?
      

  8.   

    这就要看你的ID在数据里面是怎么设置的了。。
    用句 Response.Redirect("B.aspx?id="+变量);
    这个变量就是你要取显示什么记录了,你可以上数据库查也可以通过其他方法
      

  9.   

    我用 Response.Redirect("B.aspx?id=1");
    解决了问题,但是新的问题又来了:
    我不断在A、B之间转换,结果屏幕最下方的任务栏出现了很多访问过的A.aspx文件的最小化窗口,
    有办法取消这些吗?
      

  10.   

    或许你放一个LABEL控件,设为隐藏属性,页面加载时就给他的TEXT赋值,然后用他的TEXT值去查询数据库里的内容
    private Label lblID;
    lblID.Text = Request["ID"].AsString;
    //'select * from table where ID='+int(lblID.Text); 
    //填充好页面而点了删除按钮之后呢
    delete from table where...
    lblID.Text = '1';
    就可以了!