我在DataGrid中模版中加了个imagebutton..但是我想写事件在imagebutton里.但是不知道写到哪里.我看了看网络上的写到itemcommand但是无法执行啊...请大侠帮忙啊。

解决方案 »

  1.   

    if (((ImageButton)e.CommandSource).CommandName  == "ok")
    {
    Response.Redirect("Reserving.aspx");
    }
    不行啊.小弟这样写也不行
      

  2.   


    先把ImageButton的CommandName属性设置为'ok'
    private void Datagrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName == "ok")
    {

    }
    }
      

  3.   

    设置命令名称“CommandName”
    然后在DataGrid的ItemCommand事件里面用
    if(e.CommandName=="")判断
      

  4.   

    点DataGrid在属性栏有个闪电的图表,点那个图表在ItemCommand里面选者DAtaGrid!就可以在DataGrid_ItemCommand事件中写代码执行了
      

  5.   

    点DataGrid在属性栏有个闪电的图表,点那个图表在ItemCommand里面选者DAtaGrid!就可以在DataGrid_ItemCommand事件中写代码执行了
    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
                          if(e.imagebutton=="ok")
        {
                                   Response.Redirect("Reserving.aspx");
        }
                       }
      

  6.   

    ........好象没有E.IMAGEBUTTON这个也.....不行也....我试了
    先把ImageButton的CommandName属性设置为'ok'
    private void Datagrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName == "ok")
    {

    }
    }
    但是还是不行.点图没反映就一直来回在当前页面
      

  7.   

    你在 DataGrid中的按扭的命令名是什么?文本是什么?
      

  8.   

    DataGrid的ItemCommand的属性你设置了么 选者成你要用的DAtaGrid的 比如DataGrid1_ItemCommand
      

  9.   

    我拿了个测试页面
    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if ( e.CommandName  == "ok")
    {
    Response.Redirect("Reserving.aspx");
    } }
    不行啊...555555
      

  10.   

    ..就是运行后点图片没有反映.点来点去就象是刷新页面.在windows窗体也触发了事件的
      

  11.   

    你在你的DataGrid控件点鼠标右键,选择编辑摸版选者对应的,然后会出现一个框,点你的ImageButton在它的CommandName里面起个名字比如ImageShow然后结束摸板
    在 private void DataGrid1_ImageShowCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
                          写你要实现的功能                   }
    里面写就可以了
      

  12.   

    <asp:TemplateColumn HeaderText="操作">
    <ItemTemplate><asp:ImageButton id="OK" runat="server" ImageUrl="btn\tyxx_Deal.gif" T CommandName="OK"></asp:ImageButton>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  13.   

    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if ( e.CommandName  == "ok")
    {
    Response.Redirect("Reserving.aspx");
    } }
      

  14.   

    以上2个地方你自己在看看 看你自己,模板列中的CommandName是否设置:<asp:ImageButton id="OK" runat="server" ImageUrl="btn\tyxx_Deal.gif" CommandName="OK"></asp:ImageButton>
      

  15.   

    在InitializeComponent方法里加这段代码
    this.Datagrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.Datagrid1_ItemCommand);
      

  16.   

    55555大哥门你们说的我都加过了的
    <ItemTemplate>
    <asp:ImageButton id="ImageButton1" runat="server" Width="42px" Height="20px" CommandName="ok" CausesValidation="False"
    ImageUrl="../cqlv/user/images/yd.jpg"></asp:ImageButton>
    </ItemTemplate>
    this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);
      

  17.   

    哈哈哈,我开始也烦劳这个问题啊,我来告诉你答案,不过我的是vb的代码,但是都查不多的;
     Protected Sub dg_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dg.ItemCommand
            Select Case e.CommandName
                Case "del"
                    'Response.Write("删除操作")
                    Dim MyCommand As SqlCommand
                    Dim DeleteCmd As String = "DELETE from aa where id = @Id"                MyCommand = New SqlCommand(DeleteCmd, myconn)
                    MyCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.Int, 4))
                    MyCommand.Parameters("@Id").Value = dg.DataKeys(CInt(e.Item.ItemIndex))                MyCommand.Connection.Open()
                    MyCommand.ExecuteNonQuery()
                    MyCommand.Connection.Close()                BindGrid()            Case "edit"
                    Me.dg.EditItemIndex = e.Item.ItemIndex
                    BindGrid()
                
            End Select    End Sub    Private Sub dg_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dg.ItemDataBound
            Dim tmpimg As Image = CType(e.Item.FindControl("del_img"), Image)
            If Not (tmpimg Is Nothing) Then
                tmpimg.Attributes.Add("onclick", "return confirm('确认删除该条记录吗?');")
            End If
        End Sub
      

  18.   

    在这个DataGrid的ItemDataBound事件里写private void dgInfo_ItemDataBound(object sender,DataGridItemEventArgs e){
        if ((ImageButton)e.Item.FindControl("ImageButton的ID")){
            ((ImageButton)e.Item.FindControl("ImageButton的ID")).Attributes.Add("onclick","dosome();");
        }
    }这是注册客户端脚本的方法
    如果是用服务器端的就用ItemCommand好了,不过要先设置ImageButton 的CommandName