2013-11-22 81 views
0

大家好我在我的asp.net网页中有一个中继器控件。我想从中继器控制中选择月份,并从当月的基准中获取我在该月发布的所有数据以下是中继器控制的源代码。从中继器控制中获取数据在所选记录的基础上

<asp:Repeater ID="Repeater1" runat="server" 
       onitemcommand="Repeater1_ItemCommand"> 

      <ItemTemplate> 
      <ul class="archive"> 
      <li><a href="#"> 
       <%#Eval("mnth") %> 
      &nbsp; <%#Eval("yr") %><span>(<%#Eval("totalcount") %>)</span> 
       <%--<asp:Label ID="Label6" runat="server" Text="<%#Eval("mnth") %>">&nbsp; 
        <asp:Label ID="Label8" runat="server" Text="<%#Eval("yr") %>"></asp:Label><span> ( 
        <asp:Label ID="Label7" runat="server" Text="<%#Eval("totalcount") %>"></asp:Label>) </span> </a></li>--%> 
       </ul> 
      </ItemTemplate> 

      </asp:Repeater> 

这里是我用来将Repeater控件绑定

private void BindPostCounts() 
    { 
     SqlCommand cmdBindCounts = new SqlCommand("CountBlogPost_sp", con); 
     cmdBindCounts.CommandType = CommandType.StoredProcedure; 
     SqlDataAdapter daBindCounts = new SqlDataAdapter(cmdBindCounts); 
     DataSet dsBindCount = new DataSet(); 
     daBindCounts.Fill(dsBindCount); 
     Repeater1.DataSource = dsBindCount; 
     Repeater1.DataBind(); 


    } 

的代码,这是我使用

SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[BlogPost](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [Title] [varchar](500) NULL, 
    [Blogpost] [nvarchar](max) NULL, 
    [Paramlink] [varchar](500) NULL, 
    [PostDate] [datetime] NULL, 
    [IsActive] [int] NULL 
) ON [PRIMARY] 

GO 

SET ANSI_PADDING OFF 
GO 

上现在每月基地选择我要表得到我在那个月发布的数据请告诉我哪个事件我必须工作

+0

就请您从中获取数据表指定信息 –

+0

@Rony请编辑我的问题加我的表 –

+0

@AzadChohan - 使用ID与隐藏字段.... –

回答

0

使用这种方法。把你的中继器内的LinkBut​​ton(例如波纹管):

<asp:Repeater ID="Repeater1" runat="server"> 

    <ItemTemplate> 
     <ul class="archive"> 
      <li> 
       <asp:LinkButton runat="server" Text='<%#Eval("mnth") %>' CommandArgument='<%#Eval("mnth") %>' OnCommand="OnMonthSelected"></asp:LinkButton> 
      </li> 
     </ul> 
    </ItemTemplate> 

</asp:Repeater> 

,然后按需事件处理程序得到月份值和按月得到所有博客文章。

protected void OnMonthSelected(object sender, CommandEventArgs e) 
{ 
    int month = Convert.ToInt32(e.CommandArgument); 

    //get blog posts for month 
} 
0

您使用两个中继器pa租金和子女 在父级中继器中,将方法附加到OnItemDataBound事件和方法中,找到嵌套的中继器并根据月份绑定数据。

实施例(的.aspx):

<asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ItemBound"> 
<ItemTemplate> 
    <!-- Repeated data --> 
<asp:Label id="monthlabel" Text='<%# DataBinder.Eval(Container.DataItem, "Rating") %>' Runat="server"/> 
    <asp:Repeater ID="ChildRepeater" runat="server"> 
     <ItemTemplate> 
      <!-- Nested repeated data --> 
     </ItemTemplate> 
    </asp:Repeater> 
</ItemTemplate> 

实施例(的.cs):

protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) 
{ 
    ParentRepeater.DataSource = ...; 
    ParentRepeater.DataBind(); 
}} 

protected void ItemBound(object sender, RepeaterItemEventArgs args) 
{ 
if (args.Item.ItemType == ListItemType.Item || args.Item.ItemType == ListItemType.AlternatingItem) 
{ 
var Monthname =((Label)e.Item.FindControl("monthlabel")).Text 
    Repeater childRepeater = (Repeater)args.Item.FindControl("ChildRepeater"); 
    childRepeater.DataSource = ...; 
    childRepeater.DataBind(); 
} 

}

相关问题