在datalist的ItemTemplate中放了一个imagebutton。怎么执行imagebutton 的onclick事件,同时id又是datalist的值。
我这样写的在前台:给imagebutton 指定了CommandName="tj"
后台: protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "tj")
            {
                Response.Redirect("main.aspx?menuid='" + e.Item.ItemIndex + "'", true);
            }
        }
但是这样写根本命中不了commandname,怎么办?急求方法。

解决方案 »

  1.   

    这个完全可以用 js 来完成的。。
    把imagebutton   换成一个img 就好 img 加个点击事件 调用js 方法
      

  2.   

            <asp:DataList ID="DataList1" runat="server" 
                onitemcommand="DataList1_ItemCommand">
            <HeaderTemplate>
            <table>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td><%#Eval("ID") %></td>
                    <td>
                        <asp:ImageButton ID="ImageButton1" CommandName="Tj" runat="server" />
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            </asp:DataList> if (!IsPostBack)
            {
                DataList1.DataSource = getDataTable();
                DataList1.DataBind();
            }
     public DataTable getDataTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(System.Int32));
            for (int i = 0; i < 5; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i + 1;
                dt.Rows.Add(row);
            }
            return dt;
        }
        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "Tj")
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('" + e.Item.ItemIndex + "')</script>");
            }
        }
      

  3.   

    http://blog.csdn.net/xianfajushi/archive/2008/11/30/3413317.aspx
      

  4.   

    http://blog.csdn.net/xianfajushi/archive/2009/11/05/4774105.aspx
      

  5.   

    先findcontrol imgButton看看吧
      

  6.   

    该用img,点击调用js方法,相应的id 作为参数传入
      

  7.   

    用OnCommand 事件啊在DATALIST 模板ItemTemplate中 直接编写ImageButton的OnCommand 事件,
    CommandArgument存值后台如
     protected void imgBtn_Command(object sender, CommandEventArgs e)
        {
            e.CommandArgument
        }
      

  8.   

    onclick
    ImageButton btn =sender as ImageButton ;
    DataListItem item = (sender as ImageButton).NamingContainer as DataListItem;

    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "Tj")
            {
              //设置CommandArgument
            }
        }