我有一个星级评定的应用程序。 转发器内的星级评定。
<asp:Repeater ID="reptweet" runat="server" onitemcommand="reptweet_ItemCommand">
<ItemTemplate>
<div class="divtweet">
<span class="box_imag">
<asp:Image ID="ScreenImage" runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"ImageUrl")%>' height="50" width="50" /></span>
<span class="box_cont">
<div><strong> <a rel="external" href='http://twitter.com/<%#DataBinder.Eval(Container.DataItem,"ScreenName")%>' target="_blank">
<asp:Label ID="lblScreenName" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "ScreenName")%>'></asp:Label></a></strong>
<asp:Label ID="lblText" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Text")%>'></asp:Label>
</div>
<div class="meta"><asp:Label ID="lblDate" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Date")%>'></asp:Label></div>
</span>
<asp:UpdatePanel ID="updtpnlTweet" runat="server">
<ContentTemplate>
<cc1:Rating ID="rateTweet" runat="server"
CurrentRating="3"
MaxRating = "5"
StarCssClass="ratingStar"
EmptyStarCssClass="empatyStarRating"
FilledStarCssClass="filledStarRating"
WaitingStarCssClass="savedStarRating"
OnChanged="rateTweet_Changed"
>
</cc1:Rating>
</ContentTemplate>
</asp:UpdatePanel>
<asp:DropDownList ID="DropDownList1" runat="server" Width="100px" CssClass="dropdowntweet" DataSourceID="SqlDataSource1" DataTextField="CategoryName" DataValueField="CategoryId" >
</asp:DropDownList>
</div>
</ItemTemplate>
</asp:Repeater>
通过此代码,它显示多行,我希望根据星级评分对此转发器内容进行排序。
所以我可以按行获得星值。
或者还有其他星级评定方式。
答案 0 :(得分:2)
如果您正在寻找分解为行的重复值的设置,则网格视图控件可能会使事情变得更加容易。转发器并非真正设计用于将日期分解为逻辑“行”的概念,它实际上是为了您可以自定义重复数据的格式。试图迭代转发器是一件非常痛苦的事情。
使用网格视图迭代您的行非常简单:
foreach (GridViewRow ratingRow in RatingGrid.Rows)
{
Rating ratingControl;
int rating;
ratingControl = (Rating)(ratingRow.FindControl("rateTweet"));
rating = ratingControl.CurrentRating;
}
良好的网格视图示例here