我直接贴我的代码了,我希望的效果是,每次点击删除分类,就可以直接删除,不用再次刷新页面。
现在每次是删除了,但是还得刷新页面,一下,如果我下了断点,一步一步的执行的话,就没有这个问题。我怀疑不是代码的问题。    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
        BindDropList();
        }
    }    /// <summary>
    /// 绑定dropdownlist
    /// </summary>
    public void BindDropList()
    {
        DataSet DS=new DataSet();
        DS = new database().QueryDataSet("SELECT id,[分类名称],[分类英文名称] FROM [精选案例分类]");
        if (DS.Tables[0].Rows.Count > 0)
        {
            DataTable Dt = DS.Tables[0].Clone();
            DataRow DR;
            for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
            {
                DR = Dt.NewRow();
                DR["id"] = DS.Tables[0].Rows[i]["id"];
                DR["分类名称"] = DS.Tables[0].Rows[i]["分类名称"] + "       " + DS.Tables[0].Rows[i]["分类英文名称"];
                Dt.Rows.Add(DR);
            }
            delClassList.DataTextField = "分类名称";
            delClassList.DataValueField = "id";
            delClassList.DataSource = DS;
            delClassList.DataBind();
        }
     }    protected void delClass_Click(object sender, EventArgs e)
    {
        try
        {
            string delId = Request["delClassList"];
            if (delId != string.Empty)
            {
                if (new database().ExcuteSql("DELETE FROM [精选案例分类] WHERE id=" + delId) > 0)
                {
                    ErrMsg.Text = "删除成功!";
                }
            }
            BindDropList();
        }
        catch (Exception ee)
        {
            ErrMsg.Text = ee.ToString();
        }
        
        
    }HTML 页面代码        <table align="center" background="images/dot_1.gif" bgcolor="#ffffff" border="1"
            bordercolor="#ffffff" cellpadding="2" cellspacing="1" width="98%">
            <tr class="topbg">
                <td bgcolor="#e1e1e1" colspan="2"><a href="#" name="aboutus1" ></a>
                    &nbsp;维护精选案例分类</td>
            </tr>
            <tr class="trbg">
                <td align="right" bgcolor="#f0f0f0" width="80">
                    删除分类:</td>
                <td>
                    &nbsp;<asp:DropDownList ID="delClassList" runat="server">
                    </asp:DropDownList>
                    <asp:Button ID="delClass" runat="server" OnClick="delClass_Click" Text="删除当前分类" /></td>
            </tr>
            <tr class="trbg">
                <td align="right" bgcolor="#f0f0f0" >
                    </td>
                <td >
                    </td>
            </tr>
            <tr class="trbg">
                <td align="right" bgcolor="#f0f0f0">
                    </td>
                <td>
                    </td>
            </tr>
            <tr class="trbg">
                <td align="center" colspan="2">
                    <asp:Label ID="ErrMsg" runat="server"></asp:Label></td>
            </tr>
        </table>

解决方案 »

  1.   

    一般删除以后,要重新绑定一下数据,就等于的刷新删除之后,有了一个 BindDropList();
    好像是没问题。
    等高手
      

  2.   

    用AJAX的updatepanle控件,把dropdowmlist放在里面
      

  3.   

    如果您没有用ajax,又要提交server,那刷新就太正常了.
    即于你说调试下就没有刷新,那可能是浏览器的问题了,你用的是什么浏览器啊
      

  4.   

    我直接贴我的代码了,我希望的效果是,每次点击删除分类,就可以直接删除,不用再次刷新页面。
    (你可以用AJAX来实现)
     
    现在每次是删除了,但是还得刷新页面,
    服务器端的按钮控件,就算没有写事件,也会刷新页面。
      

  5.   

    对。用Ajax控件实现起来简单。
      

  6.   

            if (!IsPostBack)
            {
            BindDropList();
            }
    可以每次执行的时候重新绑定
      

  7.   

                delClassList.DataSource = DS;           
                delClassList.DataTextField = "分类名称";
                delClassList.DataValueField = "id";
                delClassList.DataBind();
      

  8.   


    你好,您说的情况我试验过,下了断点,一步一步的执行,数据删除了,然后重新绑定,页面显示正常,也是我想要的效果,可以说,下断点的过程中,没有任何问题,但是不下断点,直接点按钮执行,就是不行,页面删除不掉,要重新刷新才可以,之前没有遇到过这种问题。另外,我觉得视乎是页面缓存的问题,因为我随便加了一句 "response.write("11111");",按F5,执行,这句话无法显示,我要再用鼠标刷新一下页面才可以,
    如果说是页面缓存的问题,我在代码中加入了
            
    Response.Buffer = true;
            Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
            Response.Expires = 0;
            Response.CacheControl = "no-cache";
            Response.AddHeader("Pragma", "No-Cache");这样,也是没有效果.页面演示地址是:
    http://www.sy-cg.cn/admin/jxal.aspx 
      

  9.   

    把public void BindDropList()放到 if (!IsPostBack)里面试下, 
      

  10.   

    老兄,你连基本asp.net原理都没弄清楚。
      

  11.   


    试验了,还是不行,现在不是因为没有清空dropdownlist 的问题,因为,我单步执行的话,
    是可以正常执行的。唯独不下断点的时候,不行。我把整个项目上传了,希望大家帮我看看,
    我很着急,谢谢大家。
    下载地址:
    http://www.sy-cg.cn/work.rar
      

  12.   

    问题页面名称叫: jxal.aspx 
      

  13.   

    你这个代码,跟调不调试没有关系,都是要刷新,只是调试的时候你看不到而已,有时候刷得比较快你没感觉到,你想不刷新,可以自己写,也可以跟上面很多人提到的ajax之类的实现。
      

  14.   

    问题找到了,但是不知道如何解决,是ACCESS的问题,同样的代码,我转移到SQL SERVER 下执行,就没这个问题 大家谁能帮帮我呀。
      

  15.   

    执行服务器端代码都要刷新啊! 用Ajax就可以不刷新了。
      

  16.   

    當你刪除的時候,查看數據庫是否真的已經刪除了。delClassList.DataSource = DS.Tables[0]; 不要用DateSet,請指定具體DataTable,你定義的Dt沒用到?
    delClassList.DataTextField = "分类名称";
    delClassList.DataValueField = "id";
    delClassList.DataBind();
      

  17.   

    哈哈,你database.cs 沒有關閉連接
     public int ExcuteSql(string Sql)
        {
            int ReturnInt=0;
            OpenConnection();
            OleDbCommand OleCmd=new OleDbCommand();
            OleCmd.Connection = Conn;
            OleCmd.CommandText = Sql;
            try
            {
                ReturnInt = OleCmd.ExecuteNonQuery();
                if (ReturnInt > 0)
                {
                    return ReturnInt;
                }
                else
                {
                    return 0;
                }
            }
            catch
            {
                return 0;
            }
            finally   //要關閉此連接
            {
                CloseConnection();
            }
        }
      

  18.   

    //把重新绑定放到提示框之前试一试
    BindDropList();
    ErrMsg.Text = "删除成功!";
      

  19.   

     多谢wudefly ,问题解决了, 是发生在这里,是我没关闭数据库连接。
    技术深究一下:
    1.为何我下断点分步执行时,就显示正常,是数据库连接自动关闭,有一个时间吗?断点执行时,操作这个时间,数据库连接就自动关闭了?
    2. 为何在SQL SERVER 2000 中,没有这个问题呢?