将Button等控件嵌入到repeater中

ASPX页面:

增加两个事件,及传值。

<asp:Repeater ID="rptList" OnItemDataBound="rptList_ItemDataBound" OnItemCommand="rptList_ItemCommand" runat="server" DataSourceID="SqlDataSource1">
   <ItemTemplate>
     <%#Eval("Title") %>   
    <asp:Button ID="btnPass" runat="server" Text="Pass" CssClass="btn" CommandName="btnPass" ItemEventArgs=<%# Eval("Title") %> CommandArgument=<%# Eval("Title") %> />     
  </ItemTemplate>
</asp:Repeater>

CS页面:

     protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        {
            if (e.CommandName == "btnPass")
            {
                string strCA = e.CommandArgument.ToString();
            }
            Response.Write(e.CommandArgument.ToString());
        }
    }
    protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Response.Write(e.Item.ToString());
     }

 

简单说明四处

1:OnItemDataBound="rptList_ItemDataBound"

     这个事件,跟按钮点击事件,并没有关系。在这里。只是用于控制按钮的显示状态。

2:OnItemCommand="rptList_ItemCommand"

     这个事件,就是重点啦。用于当触发Command相关的事件,用于,当点击了按钮后,触发要执行的代码。

3:CommandName="btnPass" 

    主要是每个按钮的标识,相当于ID一样。用于后台代码找到,你点击的是哪个按钮。

4:CommandArgument="<%# Eval("Title") %> "

     传值,object 类型。 比如你可以把这一行数据的ID传进去。当然可以把整个Entity传进去。

posted on 2010-12-04 21:39  Ron Ngai  阅读(1389)  评论(1编辑  收藏  举报

导航