我在main.aspx用datagrid绑定了一个音乐数据表 又用TemplateColumn 定义了一个
imagebutton按钮用于播放音乐,问题是如何判定按钮是否被点击     以获取该行音乐id在另一个页面play.aspx播放

解决方案 »

  1.   

    把按钮的CommandArgument属性绑定到表的主键.然后按钮点击的时候就可以通过CommandArgument获取点击的是哪条记录的按钮.可以通过CommandArgument来连到数据库
    <asp:TemplateField HeaderText="播放">
      <ItemTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("表主键列名") %>' OnClick="LinkButton1_Click">播放</asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>    protected void LinkButton1_Click(object sender, EventArgs e)
        {
            LinkButton btn = sender as LinkButton;
            string name = btn.CommandArgument;  //这就是你点击的记录的主键.
        }
      

  2.   

    DataGrid定义ItemCommand 在里面判断
    if(e.CommandName=="前台imagebutton按钮的CommandName")
    {
    e.Item.Cells[i].Text  取id值  
    //执行代码
    }
      

  3.   

    <asp:TemplateField HeaderText="播放">
      <ItemTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server" CommandName="play" CommandArgument='<%# DataBinder.DataItem("表主键列名") %>' OnClick="LinkButton1_Click">播放</asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
    设置datagrid 的datakeyfield为id字段的名称,然后在datagrid的itemcommand事件里面对其进行处理
    if(e.commandname =="play")
    {
      string id= datagrid1.DataKeys[e.Item.ItemIndex].ToString();
    ...
    }