我页面中添加了一个DataGrid,name是grdTang,给Datagrd添加了选择,编辑,和删除按钮,下面是三个事件“...”为省略部分
Private Sub grdTang_CancelCommand(...) Handles grdTang.CancelCommand
        grdTang.EditItemIndex = -1
        setgrdTang()'自己写的一个数据重新绑定函数
End SubPrivate Sub grdTang_EditCommand(...) Handles grdTang.EditCommand
        grdTang.EditItemIndex = e.Item.ItemIndex
        setgrdTang()
End SubPrivate Sub grdTang_ItemCommand(...) Handles grdTang.ItemCommand
        labDebug.Text = e.CommandName'用来显示我按下按钮的名字
End Sub
当我按下:编辑---labDebug显示:Edit
         取消---labDebug显示:Delete’本应该调用应该CancelCommand,但他调用了DeleteCommand
         删除---labDebug显示:空
我已经把DataGrd重加了好几次,还是不行,真是郁闷,郁闷,郁闷,哪位高手指点指点。

解决方案 »

  1.   

    <ASP:DataGrid id="MyDataGrid" runat="server"
      ...
      OnEditCommand="grdTang_EditCommand"
      OnCancelCommand="grdTang_CancelCommand"
      OnDeleteCommand="grdTang_DeleteCommand"
      ....
    >  <Columns>
        <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" />
      </Columns></ASP:DataGrid>
      

  2.   

    <ASP:DataGrid id="grdTang" runat="server"
      ...
      OnEditCommand="grdTang_EditCommand"
      OnCancelCommand="grdTang_CancelCommand"
      OnDeleteCommand="grdTang_DeleteCommand"
      ....
    >  <Columns>
        <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" />
      </Columns></ASP:DataGrid>
      

  3.   

    <asp:datagrid id="grdTang" runat="server" BackColor="#FFFFCC" Width="100%" ForeColor="Black" Font-Size="X-Small"
    PageSize="1" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="3"
    AutoGenerateColumns="False">
    <SelectedItemStyle Font-Size="Small" Font-Bold="True" Wrap="False" ForeColor="DarkSlateBlue" BackColor="DarkSeaGreen"></SelectedItemStyle>
    <EditItemStyle Font-Size="Small" Wrap="False"></EditItemStyle>
    <AlternatingItemStyle Font-Size="Small" Wrap="False" BackColor="Gainsboro"></AlternatingItemStyle>
    <ItemStyle Font-Size="Small" Wrap="False" ForeColor="#333333" BackColor="White"></ItemStyle>
    <HeaderStyle Font-Size="Small" Wrap="False" BackColor="SteelBlue"></HeaderStyle>
    <Columns>
    <asp:ButtonColumn Text="选择" HeaderText="选择" CommandName="Select">
    <ItemStyle Wrap="False" BackColor="DarkSeaGreen"></ItemStyle>
    </asp:ButtonColumn>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="修改" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
    <asp:ButtonColumn Text="删除" ButtonType="PushButton" HeaderText="删除" CommandName="Delete">
    <ItemStyle Wrap="False" ForeColor="Crimson"></ItemStyle>
    </asp:ButtonColumn>
    <asp:TemplateColumn HeaderText="id">
    <ItemStyle Wrap="False"></ItemStyle>
    <ItemTemplate>
    <asp:Label id=labMBTangID runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.发运趟id") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:Label id=txtMBTangID runat="server" Width="3ex" Text='<%# DataBinder.Eval(Container, "DataItem.发运趟id") %>'>
    </asp:Label>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="发车时间">
    <ItemStyle Wrap="False"></ItemStyle>
    <ItemTemplate>
    <asp:Label id=labFrom runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.发车时间", "{0:yyyy-MM-dd}") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=txtFrom runat="server" Width="11ex" Text='<%# DataBinder.Eval(Container, "DataItem.发车时间", "{0:yyyy-MM-dd}") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="到家时间">
    <ItemStyle Wrap="False"></ItemStyle>
    <ItemTemplate>
    <asp:Label id=labTo runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.到家时间", "{0:yyyy-MM-dd}") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=txtTo runat="server" Width="11ex" Text='<%# DataBinder.Eval(Container, "DataItem.到家时间", "{0:yyyy-MM-dd}") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="所经地点">
    <ItemTemplate>
    <asp:Label id=labSJDD runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.所经地点") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=txtSJDD runat="server" Width="40ex" Text='<%# DataBinder.Eval(Container, "DataItem.所经地点") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="结算时间">
    <ItemTemplate>
    <asp:Label id=labGRDJSSJ runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.结算时间", "{0:yyyy-MM-dd}") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=txtGRDJSSJ runat="server" Width="11ex" Text='<%# DataBinder.Eval(Container, "DataItem.结算时间", "{0:yyyy-MM-dd}") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle Font-Size="Small" HorizontalAlign="Center" ForeColor="Black" BackColor="#CCCCCC"
    Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
      

  4.   

    对,我也遇到过这个问题!好象是分页和里面的删除事件冲突了,最后只好用Item_Command解决了
      

  5.   

    Item_Command我也试过了,得到的事件也是错误的
      

  6.   

    我遇过,并且已经解决了,方法是:用Item_Command
    然后判断e.commandsource,是不是pager
    如果是就分页,如果不是就……
    搞定
      

  7.   

    OnEditCommand="grdTang_EditCommand"
      OnCancelCommand="grdTang_CancelCommand"
      OnDeleteCommand="grdTang_DeleteCommand"
    还是没有用
    naokizxx(被迫VB) 请赐教
      

  8.   

    用e.commandsource不行我只有(System.Web.UI.WebControls.DataGridLinkButton)和(System.Web.UI.WebControls.Button)因为根本没有用分页
      

  9.   

    行里面嵌两个TableGrid外:编辑按钮,删除按钮Grid内:{
    每一行:{
    CheckButton:(JS实现选中当前行)
    Table1:Grid正常显示的时候
    Table2:单击编辑按钮的时候显示(包含"更新"和"取消更新"两个按钮)
    }
    }
    编辑按钮:Grid内选中的行显示为Table2
    删除按键:Grid内选中的所有行删除掉
    取消按键:当前行显示为Table1
    更新按键:操作SQL,操作完Grid显示为Table1
    给分不???????????????哈哈
      

  10.   

    这些按钮触发的是同一个事件,要用e.CommandName来确定是哪一个按钮被触发
      

  11.   

    现在就是e.CommandName传来的事件不对
      

  12.   

    naokizxx(被迫VB) ,不好意思,还是不能给分,你是一种变通方法,我需要的是为什么e.CommandName传来的事件不对
      

  13.   

    Page_Load()
    Init
    等函数里有没有问题?
      

  14.   

    经国家公安部鉴定,楼主代码数据VB.NET代码,如果不尽快转到VB区,将扣光你的信誉分,并赶出地球。
      

  15.   

    <ASP:DataGrid id="MyDataGrid" runat="server"
      ...
      OnEditCommand="grdTang_EditCommand"
      OnCancelCommand="grdTang_CancelCommand"
      OnDeleteCommand="grdTang_DeleteCommand"
      ....
    >
    ....
    '=========================
    public Sub grdTang_CancelCommand(...) 
            grdTang.EditItemIndex = -1
            setgrdTang()'自己写的一个数据重新绑定函数
    End Subpublic Sub grdTang_EditCommand(...) 
            grdTang.EditItemIndex = e.Item.ItemIndex
            setgrdTang()
    End Subpublic Sub grdTang_ItemCommand(...)
            labDebug.Text = e.CommandName'用来显示我按下按钮的名字
    End Sub
      

  16.   

    理解,NET编译器有时候会出问题,我们在做项目的时候有时会遇到里面的代码变成全黑色,也就是没了只能感应,没有了关键字突出显示,你把文件关闭打开后也就正常了。楼主遇到的问题我建议将页面所有代码备份,然后删除页面,重新建立一个新的页面,然后将代码拷回去。虽然这个方法很苯,但遇到莫名其妙的问题时特别管用。
      

  17.   

    .net 2003经常会有这种问题希奇古怪的问题
    .net 2002没有,
    建议你做好后调试的时候清空Cache
    在C:\Documents and Settings\Administrator\Local Settings里面的Temp和Temporary Internet Files两个文件夹里的内容