我用这样的删除
<asp:ButtonColumn Text="delete" CommandName="delete"></asp:ButtonColumn>可以实现删除功能,但我改成:
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="delete" Text="删除"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>就不行,不知道为什么,我还需要设置别的地方吗??

解决方案 »

  1.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(CommandName=="delete")
    {
       //删除记录语句
    }
    else
    {
       //错误提示语句
    }
      

  2.   

    查看DataGrid有没有DeleteCommand事件
      

  3.   

    是啊,根本就没有执行Itemcommand呀
      

  4.   

    y3q3() 
    你说把"command=delete" 那些都写在DataGrid1_ItemDataBound里呀,可我的<asp:ButtonColumn Text="delete" CommandName="delete"></asp:ButtonColumn>是写在itemcommand里的
    为什么他们两个写的地方不一样呢???
      

  5.   

    ItemDataBound是数据项绑定
    ItemCommand是命令事件
      

  6.   

    写在ItemCommand事件中;
    switch(e.CommandName)
    {
      case "delete":
      ...
     break;
    }
      

  7.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Command.Name=="delete")
    {
       //删除记录语句
    }
    else
    {
       //错误提示语句
    }
      

  8.   

    应该是写在ItemCommand里
    但现在的问题不是语句怎么写,问题是我点击那个删除列,根本就不触发ItemCommand事件!!!!不知道为什么
      

  9.   

    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName=="delete")
    {
    string list_id =e.Item.Cells[0].Text.ToString();
    string connString="server=(local);database=table;uid=sa;pwd=;";
    string sql="delete ta6 where list_id="+list_id;

    SqlConnection conn=new SqlConnection(connString);
    conn.Open();
    SqlCommand cmd=new SqlCommand(sql,conn);

    //cmd.CommandType=CommandType.StoredProcedure;
    //cmd.Parameters.Add(new SqlParameter("@id",Convert.ToInt16(id)));
    cmd.ExecuteNonQuery();
    conn.Close();
    fill(); }
    这里我根本没动呀,我用自定义列:
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:Button ID="Button1" runat="server" CommandName="delete" Text="delete"></asp:Button>
    </ItemTemplate>
    </asp:TemplateColumn>,就根本不触发DataGrid1_ItemCommand.
    而我用<asp:ButtonColumn Text="delete" CommandName="delete"></asp:ButtonColumn>就行
    谁能帮我一下???????????????????????????????
      

  10.   

    检查一下~~你的DataGrid事件加对了吗?
    应该写在Delete_ItemCommand里哦
      

  11.   

    我没有写在delete_ItemCommand里
    但是我写在DataGrid1_ItemCommand这个通用事件里,不是一样吗,我有if(e.Commandname="delete")做选择呢!!!
      

  12.   

    有可能是DataGrid1_ItemCommand事件没有注册。