C# 如何计算asp.net中继器控件中最后一列的值

C# 如何计算asp.net中继器控件中最后一列的值,c#,asp.net,if-statement,asprepeater,C#,Asp.net,If Statement,Asprepeater,看下面的图片,我想计算我使用的中继器控件的最后一列(cnt)的值 示例: if (last column (cnt) is greater than 5> ) { response.write ("6"); } sql查询 SELECT id, category, ( SELECT COUNT(id) FROM entry_table WHERE category.id = entry_table.Cat_id) as cnt FROM category 中继器代码 <

看下面的图片,我想计算我使用的中继器控件的最后一列(cnt)的值

示例:

if (last column (cnt) is greater than 5> )
{
    response.write ("6");
}
sql查询

 SELECT id, category, ( SELECT COUNT(id) FROM entry_table WHERE category.id = entry_table.Cat_id) as cnt FROM category

中继器代码

<asp:Repeater ID="CloudTags" runat="server"  OnItemDataBound="CloudTags_ItemDataBound">
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink9" runat="server">
             <%#DataBinder.Eval(Container,"DataItem.Category")%>
            (<%#DataBinder.Eval(Container,"DataItem.cnt")%>)
        </asp:HyperLink>
    </ItemTemplate>
</asp:Repeater>

你可以这样做:

protected void CloudTags_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    var repeaterItem = e.Item;
    // TODO you still have to check the type of the repeaterItem
    var dataItem = (dynamic) repeaterItem.DataItem;
    var cnt = dataItem.cnt;
    if (cnt > 5)
    {
        var hyperLink = (HyperLink) repeaterItem.FindControl("HyperLink9");
        hyperLink.CssClass = "TagSize2";
    }
}


无论如何,我强烈建议您不要使用
dynamic
DataBinder.Eval
,而是将
.Data
-属性强制转换为强类型!否则,这将导致一些奇特的运行时反射,并将对性能产生影响

为什么不干脆
5呢?“6”:string.Empty%>
?你能再多提示一点吗?…这不是没有提示,这是解决方案。。。你们到底有什么问题?实际上我想计算最后一列(cnt)的值。我试图将最后一列(cnt)的值作为整数获取。示例:如果(最后一列(cnt)>5){HyperLink HyperLink9=(HyperLink)e.Item.FindControl(“HyperLink9”);HyperLink9.CssClass=“TagSize2”}很高兴为您提供帮助!但是,如果这个答案适合您,您可以勾选这个作为解决方案;)
protected void CloudTags_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    var repeaterItem = e.Item;
    // TODO you still have to check the type of the repeaterItem
    var dataItem = (dynamic) repeaterItem.DataItem;
    var cnt = dataItem.cnt;
    if (cnt > 5)
    {
        var hyperLink = (HyperLink) repeaterItem.FindControl("HyperLink9");
        hyperLink.CssClass = "TagSize2";
    }
}
protected void CloudTags_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    var repeaterItem = e.Item;
    // TODO you still have to check the type of the repeaterItem
    var dataItem = repeaterItem.DataItem;
    var objCnt = DataBinder.Eval(dataItem, "cnt");
    // TODO check the whole parsing/converting stuff ...
    var stringCnt = objCnt.toString();
    var cnt = int.Parse(stringCnt);
    if (cnt > 5)
    {
        var hyperLink = (HyperLink) repeaterItem.FindControl("HyperLink9");
        hyperLink.CssClass = "TagSize2";
    }
}