首页 新闻 会员 周边

repeater嵌套绑定的同时设置控件状态

0
悬赏园豆:10 [已解决问题] 解决于 2012-02-22 20:55

aspx代码:

<asp:Repeater ID="headlist2" runat="server" OnItemDataBound="headlist2_ItemDataBind">
<HeaderTemplate>

</HeaderTemplate>
<ItemTemplate>
<ul><!-- 这里是有二级导航的 -->
<li class="second_nav" onMouseOut="unshow_it(this)" onMouseOver="show_it(this)">
<a href="News/list.aspx?id=<%# Eval("id") %>"><%# Eval("catName") %><asp:Image ID="chead" runat="server" ImageUrl="img/33.png" /></a>
<span>
<asp:Repeater ID="clist" runat="server" >
<ItemTemplate>
<a href="News/list.aspx?id=<%# Eval("id") %>"><%# Eval("catName") %></a>
</ItemTemplate>
</asp:Repeater>

</span>
</li>
</ul>
</ItemTemplate>
<FooterTemplate>

</FooterTemplate>
</asp:Repeater>

 

 

aspx.cs代码

protected void HeaderBind()
{
DataSet ds = new DataSet();
ds = null;
ds = catImpl.GetCategoryListByCId(2);
if (ds != null)
{
this.headlist2.DataSource = ds.Tables[0];
this.headlist2.DataBind();
}

 

 

protected void headlist2_ItemDataBind(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("clist") as Repeater;//找到里层的repeater对象
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
int typeid = Convert.ToInt32(rowv["id"]); //获取填充子类的id
DataSet d = new DataSet();
d = null;
d= catImpl.GetCategoryListByCId(typeid);
if (d != null)
{
rep.DataSource = d.Tables[0];
rep.DataBind();
}

}

}

 

怎么根据里层repeater取得的值来设置控件(<asp:Image ID="chead" runat="server" ImageUrl="img/33.png" />)状态(里层repeater取得并绑定数据时显示Image图片控件,否则就不显示图片)?求解?

laurie的主页 laurie | 初学一级 | 园豆:195
提问于:2012-02-19 17:18
< >
分享
最佳答案
0

我觉得楼主的分类表中应该多追加一个 当前分类所有子分类的字段  假设为 childnodes

<%#Eval("childnodes").ToString() 条件?“<img />”:"" %>

 

或者是在 子repeater的itemdatabound事件里遍历 父标签的控件,然后取消显示 另外 img标签的ID应该是唯一的

收获园豆:5
havid | 初学一级 |园豆:70 | 2012-02-20 14:20
其他回答(1)
1

在repeater的itemdatabound事件里做判断。这个事件是在项被数据绑定后被激发,在这个事件里进行判断就可以实现你的要求了。

收获园豆:5
``炯`` | 园豆:4 (初学一级) | 2012-02-19 19:12

我之前试过了没用……

支持(0) 反对(0) laurie | 园豆:195 (初学一级) | 2012-02-19 19:25

@laurie: 跟踪调试一下,看看代码执行到哪里了。

支持(0) 反对(0) ``炯`` | 园豆:4 (初学一级) | 2012-02-19 21:02

@棋怜: 补充一点,就是这样做的话外层repeater里面的图片样式将是一样的……抱歉,是我没有说清楚……

支持(0) 反对(0) laurie | 园豆:195 (初学一级) | 2012-02-20 22:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册