首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算asp.net中继器控制中最后一列的值

如何计算asp.net中继器控制中最后一列的值
EN

Stack Overflow用户
提问于 2014-08-24 09:14:45
回答 1查看 990关注 0票数 0

请看下面的图片,我希望计算上一列(cnt)的值,我使用的是中继器控制。

示例:

代码语言:javascript
运行
复制
if (last column (cnt) is greater than 5> )
{
    response.write ("6");
}

sql查询

代码语言:javascript
运行
复制
 SELECT id, category, ( SELECT COUNT(id) FROM entry_table WHERE category.id = entry_table.Cat_id) as cnt FROM category

中继器代码

代码语言:javascript
运行
复制
<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>

代码在中的应用

代码语言:javascript
运行
复制
protected void CloudTags_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 06:51:51

你可以这样做:

代码语言:javascript
运行
复制
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";
    }
}

代码语言:javascript
运行
复制
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";
    }
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25470195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档