2012-02-03 34 views
0

我有一个嵌套中继器的情况下,子中继器嵌套在父中继器的ItemTemplate中。父级的数据源是Dictionary<String, List<XYZ>>。 在我使用的完整代码父直放站ItemDataBound嵌套中继器 - 在页脚的父行访问值

 protected void rptParent_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
     if (e.Item.DataItem is KeyValuePair<String, List<Object>>) 
      { 
       pair = (KeyValuePair<String, List<XYZ>>)e.Item.DataItem; 
      } 

      Repeater childRepeater = e.Item.FindControl("rptChild") as Repeater; 

      //bind the child repeater. 
      childRepeater.ItemDataBound += new RepeaterItemEventHandler(childRepeater_ItemDataBound); 
      childRepeater.DataSource = pair.Value; 
      childRepeater.DataBind(); 
    } 
} 

protected void childRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Footer) 
     { 
    //Access the Parent row's Key value 

    } 
    } 

有2个问题:

  1. 我可以使用隐藏域,同时结合母体并将其设置为关键值,然后检索子项中的隐藏字段值?

  2. 请问射击是如下的事件顺序:

一个。 Parent_ItemDataBound第1行的Dictionary<Key, List<XYZ>>

i。 Child_ItemDataBound对于每个父直放站的行1的子行

ii。 Child_ItemDataBound儿童中继器的页脚

b。 Parent_ItemDataBound第2排的Dictionary<Key, List<XYZ>>

i。 Child_ItemDataBound对于每个父直放站的第2行的子行

ii。 Child_ItemDataBound儿童中继器的页脚

等等。换句话说,Parent_ItemDataBound之后是每个子行的Child_ItemDataBound事件 - 循环重复吗?

回答

0

以下是回答你的问题:

  1. 是的,你可以访问父repeater项目控制

    VAR HFID = e.Item.NamingContainer.NamingContainer.FindControl( “HFID”)作为HiddenField;

  2. 该订单是正确的。

希望

帮助

+0

非常感谢塞巴斯蒂安。 – Vikas 2012-02-03 16:05:10