出现一个问题,希望大家帮忙解决下。
我在GRIDVIEW中加了个模板字段编辑,然后在模板里加入了一个linkButton,把它的commandName设成了Delete然后在GRIDVIEW里的rowCommand事件里调用了删除记录的方法。
如果在PAGE_LOAD事件里写
if(!IsPostBack )
   fanye();
那么点删除就没有任何反应。但如果选择dropDownList里的一个页码,页面回传后就会转到相应的页码。
但如果在PAGE_LOAD事件里只写fanye();点删除就可以删掉。但这时如果选择dropDownList里的一个页码,页面回传后没有任何反应。
下面是分页的方法
 protected void fanye()
    {
        SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["vote"].ConnectionString);
        SqlDataAdapter dad = new SqlDataAdapter("select * from voteMain", conn);
        DataSet ds = new DataSet();
        dad.Fill(ds, "voteMain");
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = ds.Tables["voteMain"].DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = 3;
        pds.CurrentPageIndex = Convert.ToInt32(lblPage.Text) - 1;
        lblAll.Text = Convert.ToString(pds.PageCount);
        //初始化dropdownList
        dddlPage.Items.Clear();
        for (int i = 1; i <= pds.PageCount; i++)
        {
            ListItem item = new ListItem();
            item.Value = i.ToString ();
            item.Text = i.ToString ();
            dddlPage.Items.Add(item );
            
        }
        dddlPage.SelectedIndex = pds.CurrentPageIndex;
        GridView1.DataSource = pds;
        GridView1.DataBind();
        lkbtFirst.Enabled = true;
        lkbtPrev.Enabled = true;
        lkbtNext.Enabled = true;
        lkbtLast.Enabled = true;
        if (pds.IsFirstPage)
        {
            lkbtFirst.Enabled = false;
            lkbtPrev.Enabled = false;
        }
        if (pds.IsLastPage)
        {
            lkbtNext.Enabled = false;
            lkbtLast.Enabled = false;
        }
    }
下面是点删除执行的代码
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Delete")
        {
           int voteID=int.Parse ( e.CommandArgument .ToString ());
           voteSel objSel = new voteSel();
           objSel.Delete(voteID);
           Response.Write("<script language=javascript>alert('删除成功!');location='manageVote.aspx'</script>");
           
        }
    }
下面是dropdownList的选择改变事件的代码
protected void dddlPage_SelectedIndexChanged(object sender, EventArgs e)
    {
        lblPage.Text = Convert.ToString(dddlPage.SelectedValue );
        fanye();    
       
    }
大家能帮忙看一下问题出在哪里啊?为什么页码跳转好用删除就不好用了,删除好用了页码跳转就不好用了啊?

解决方案 »

  1.   

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
        { 
            if (e.CommandName == "Delete") 
            { 
              int voteID=int.Parse ( e.CommandArgument .ToString ()); 
              voteSel objSel = new voteSel(); 
              objSel.Delete(voteID); 
              Response.Write(" <script language=javascript>alert('删除成功!');location='manageVote.aspx' </script>"); 
              
            } 
            //在这加上fanye();删除后数据要重新绑定 
            fanye(); 

        } 
      

  2.   

    数据里的数据并没有删除啊.如果用dropdownList跳转页码成功了,数据库里就删除不了数据了。关键就是在page_load里如果加上判断是否是页面回传,删除就不好用了,如果不加判断页码跳转就不好用了。
      

  3.   

    你把fanye();放在ispostback 外边
      

  4.   

    //在这加上fanye();删除后数据要重新绑定 
            fanye(); 
    把这句放在if判断语句里面