使用 linkbutton 而不是 button 来完成你的功能。linkbutton 有navigateurl属性可以指定并将当前ID传递。

解决方案 »

  1.   

    你可以把该lngid也绑定上来,只读、不显示。点击BUTTON时,在该事件中可以得到e.item.cell(0).text(假设为第一列)就可以传递了。
      

  2.   

    使用DateGrid自带的删除按纽事件可以找到对应的记录,并可以随意操作。
    .cs
    private void MyDataGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {myCommand.Parameters["@id"].Value=MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
    }.aspx
    <asp:datagrid id="MyDataGrid" style="Z-INDEX: 101; LEFT: 237px; POSITION: absolute; TOP: 104px" runat="server" AutoGenerateColumns="False" DataKeyField="Pid">
    <Columns>
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
    <asp:TemplateColumn HeaderText="X">
    <ItemTemplate>
    <asp:Checkbox ID="chkSelection" Runat="server" />
    <asp:Label ID="hdnStoreID" Visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "pid") %>' Runat="server" />
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="pid" SortExpression="pid" ReadOnly="True" HeaderText="au_id">
    <ItemStyle Wrap="False"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="ptype" SortExpression="ptype" HeaderText="ptype">
    <ItemStyle Wrap="False"></ItemStyle>
    </asp:BoundColumn>
    <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
    </Columns>
    </asp:datagrid>
      

  3.   


    to :bluefish922(一天到晚游泳的鱼) 我的按钮事件e点不出e.item.cell(0).textprivate void myDataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    }
      

  4.   

    是在DataGrid1_ItemCommand事件中,你先在HTML里设定该BUTTON的commandname="XX"
    在DataGrid1_ItemCommand中
    If e.CommandName = "xx" Then
    ....
    end if
      

  5.   

    在cs中,你可把Label1换成lngid字段:
    string cmd=((LinkButton)e.CommandSource).CommandName;
    switch(cmd)
    {
      ...
     case "delete":
     sqlConnection1.Open();
     string delete="delete shortmessage where sendtime='"+((Label)
     e.Item.FindControl("Label1")).Text+"'";
     sc=new SqlCommand(delete,sqlConnection1); sc.ExecuteNonQuery();} 
    在aspx中
    <ItemTemplate>
    ...  
    <asp:LinkButton id="LinkButton4" Runat="server" CommandName="delete">删除</asp:LinkButton></td>
    ...
    </ItemTemplate>