C# 如何计算asp.net中继器控件中最后一列的值
看下面的图片,我想计算我使用的中继器控件的最后一列(cnt)的值 示例: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 中继器代码 <
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";
}
}