protected void GuestBookDL1_ItemDataBound(object sender, DataListItemEventArgs e)
    {        Button ReplyB = (Button)e.Item.FindControl("ReplyB");
        
        if (ReplyB!=null)
        {            ReplyB.Click += new EventHandler(ReplyB_Click);
        }     
    }    void ReplyB_Click(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }为什么点击出错 GuestBookDL1是一个DataList

解决方案 »

  1.   

    DataList中按钮的事件可以这样用:html 页面代码:
    <asp:DataList ID="DL_Select" runat="server" RepeatColumns="4" ShowFooter="False"
        ShowHeader="False" Width="100%" OnItemCommand="DL_Select_ItemCommand">
        <ItemTemplate>
            <asp:LinkButton ID="lbtnSelect" runat="server" Text='<%#Eval("name")%>' CommandName="SelectSchool"></asp:LinkButton>
        </ItemTemplate>
    </asp:DataList>
    注意设置 DataList 模板中 LinkButton 的CommandName 属性为 "SelectSchool"
    CS 文件代码 
    protected void DL_Select_ItemCommand(object source, DataListCommandEventArgs e)
     {
            //根据选择不同院系传递不同的值
         if (e.CommandName == "SelectSchool")
         {
                //code
         }
    }
      

  2.   

    CommandName 的原理和我的一样 
    我试过了 如果是在itembound中调用一样会出错
      

  3.   

        protected void GuestBookDL1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            int ArtId = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "ArtId"));
            DataList GuestBookDL2 = (DataList)e.Item.FindControl("GuestBookDL2");
            if (GuestBookDL2!=null)
            {
                GuestBookDL2.DataSource = Article.GetDataTableRepley(ArtId);
                GuestBookDL2.ItemCommand += new DataListCommandEventHandler(GuestBookDL2_ItemCommand);
                GuestBookDL2.DataBind();      
            }
            TextBox ReplyT = (TextBox)e.Item.FindControl("ReplyT");
            Button ReplyB = (Button)e.Item.FindControl("ReplyB");
            
            //if (ReplyB!=null)
            //{        //    ReplyB.Click += new EventHandler(ReplyB_Click);
            //}     
        }    void GuestBookDL2_ItemCommand(object source, DataListCommandEventArgs e)
        {
            //throw new NotImplementedException();
            if (e.CommandName=="ReplyI")
            {
                Response.Write("XXX");
            }
        }
      

  4.   

    protected void GuestBookDL1_ItemDataBound(object sender, DataListItemEventArgs e)
    {     if( e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem )
         {
            //你的代码
         }
    }
      

  5.   

    同意 gdjlc 的代码~ 都已经回答正确了