Default.aspx<asp:DataList ID="DataList1" runat="server" DataKeyField="id" Width="100%">
                        <HeaderTemplate>
                            <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" >
                         
                                <tr class="titletd">
                                <td>
                                    选择
                                </td>
                                    <td>
                                        编号</td>
                                    <td>
                                        类别名称</td>
                                    
                                    <td>
                                        添加时间</td>
                                    
                                    
                                    <td>
                                        操作</td>
                                </tr>
                        </HeaderTemplate>
                        <ItemTemplate>
                            <tr class="list1">
                                <td>
                                    <asp:CheckBox ID="ck" runat="server" /></td>
                                    <td>
                                        <%#Eval("id")%>
                                    </td>
                                <td>
                                    <%#Eval("cname")%>
                                </td>
                                <td>
                                  <%#Eval("addtime", "{0:yyyy-MM-dd}")%>
                                </td>
                                
                                <td>
                                    <a href='?id=<%#Eval("id") %>&dos=edit'>编辑</a>&nbsp; | &nbsp;<a href='?id=<%#Eval("id") %>&dos=del'>删除</a></td>
                            </tr>
                        </ItemTemplate>
                        
                        <FooterTemplate>
                        
                            </table>
                        </FooterTemplate>
                    </asp:DataList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />Default.aspx.cs
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        { 
            s_product_class spc=new s_product_class();
            this.DataList1.DataSource = spc.select_proclass();
            this.DataList1.DataBind();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {        for (int i = 0; i < this.DataList1.Items.Count; i++)
        {
            CheckBox chk = (CheckBox)this.DataList1.Items[i].FindControl("ck");
            if (chk != null && chk.Checked)
            {
                //删除代码
                //我用了一个LinkButton  用CommandArgument来绑定的要删除的数据的主键(ID)
                int id = Convert.ToInt32(this.DataList1.DataKeys[i].ToString());
                s_product_class spc = new s_product_class();
                spc.del_proclass(id);
                
            }
        }        Response.Write("<script language='javascript'>window.location.href='Default.aspx'</script>");
            }当运行以上代码时,点击Button1两次才能删除,不知道怎么回事。

解决方案 »

  1.   

    Button1_Click里
    BindData();
    重新绑定
      

  2.   

    我在Button1_Click里添加了  DataBind();但还是不起作用。
      

  3.   

    把这几句
    s_product_class spc=new s_product_class();
    this.DataList1.DataSource = spc.select_proclass();
    this.DataList1.DataBind();写成一个函数,在spc.del_proclass(id);之后再重新执行一个函数。
    原因:实际上在数据库中已经删除了记录,只是页面没有刷新到看不到结果
      

  4.   

    心蓝的方法我试过,不过还是不行加断点追踪时,能第一次就删除,但是在iis中运行时,点两次删除才显示,删除掉了,好像页面没有刷新,但是我在后面加了Response.Write("<script language='javascript'>window.location.href='Default.aspx'</script>");
    。快来人啊。
      

  5.   

    是用循环删除的么?  循环 where id=xx  如此一条一条删除的么?
    这样容易出问题。 用where in(xx,xx,xx,xx,)一起删除掉就 没事了...