我在DataGrid的TemplateColumn列中放置了一个HTML的Button,并设定为Runat=server...
现在我如何可以在.cs页面中响应此Button的事件??

解决方案 »

  1.   

    <asp:TemplateColumn>
    <ItemTemplate>
    <input type ="button" runat ="server" value ="Select" onserverclick="Button1_ServerClick" >
    </ItemTemplate>
    </asp:TemplateColumn>
    public void Button1_ServerClick(object sender, System.EventArgs e)
    {
    Response.Write ("button");
    }
      

  2.   

    前台:
    <input type=button id="Del" onserverclick="XXX"  runat=server>
    后台:
    public void XXX(object sender, System.EventArgs e)
    {
    ///your code
    }
      

  3.   

    那么我又如何能在事件中取得对应的DataGrid行上的值呢?
      

  4.   

    前台:
    <asp:Button ID="Del" CommandName="XXX" Runat="server" Text="删除"></asp:Button>
    后台:添加ItemCommand事件
    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName=="Edit")
    {
    string id=e.Item.Cells[0].Text;
    ///
    }
    {
      

  5.   

    我用的是HTML的Button上面没有CommandName的属性!
      

  6.   

    一定要用Html的,不能用服务器的?
      

  7.   

    前台:
    <asp:Button ID="btn" CommandName="XXX" Runat="server" Text="XXX"></asp:Button>
    后台:添加ItemCommand事件
    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName=="XXX")
    {
    string s=((DataGridItem)e.Parent.Parent).Cell[0].Text;
    //string s=((DataGridItem)e.NamingContainer).Cell[0].Text;也可以
    }
    }
      

  8.   

    说错了
    string s=((DataGridItem)((Button)sender).Parent.Parent).Cell[0].Text;
    //string s=((DataGridItem)((Button)sender).NamingContainer).Cell[0].Text;也可以
      

  9.   

    设置Button的ID="htmlBtnID" ,CommandName="go";private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if( e.CommandName="go" ) //判断是否点击了那html Button
     {
         //在此添加你所需要的代码 
      }
    }
      

  10.   

    前面没有说清楚,如果你没有用itemcommand,仅仅是用一个按钮在后台注册click事件的话(一楼的方法)
    public void Button1_Click(object sender, System.EventArgs e)
    {
    string s=((DataGridItem)((Button)sender).Parent.Parent).Cell[0].Text;//第一个parent得到cell第二个parent才能得到行
    //string s=((DataGridItem)((Button)sender).NamingContainer).Cell[0].Text;也可以
    }如果你是用itemcommand的话
    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName=="XXX")
    {
    string s=e.Item.Cells[0].Text
    }
    }
      

  11.   

    czsxj(知道一点) ,
    LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 这个方法还是挺好的
      

  12.   

    仅仅是用一个按钮在后台注册click事件的话
    public void Button1_Click(object sender, System.EventArgs e)
    {
    string s=((DataGridItem)((HtmlInputButton)sender).NamingContainer).Cells[1].Text;
    }