注册 登录
编程论坛 ASP.NET技术论坛

repeater 嵌套取值 急救啊。。

跳过去 发布于 2012-09-28 15:55, 685 次点击
只有本站会员才能查看附件,请 登录


前台:
<asp:Repeater ID="rptTypeTitle" runat="server" OnItemDataBound="rptTity_OnItemDataBound">
     <ItemTemplate>
     <asp:Label ID="lblID" runat="server" Text=' <%#Eval("ID") %> '></asp:Label>
     <div class="MianPageDiv">
          <table border="2">
                <tr>
                <td colspan="2">
                <%#Eval("TypeName")%></td>
                 
                </tr>
            <asp:Repeater ID="rptPostTity" runat="server">
            <ItemTemplate>
               
            <tr>
            <td style="text-align:center"><b>用户头像</b></td>
            <td>时间</td>
            </tr>
            <tr>
             <td rowspan="2">
             <asp:Image ID="Image1" runat="server" /> <br />用户名称
             </td>
             <td rowspan="2">标题</td>
             </tr>
             </ItemTemplate>
             /asp:Repeater>
            </table>
       </div>
    </ItemTemplate>

后台:
    public void rptTity_OnItemDataBound(object sender,RepeaterItemEventArgs e)
        {
            Repeater rptPostTity = e.Item.FindControl("rptPostTity") as Repeater;
            //Label lblid = e.Item.FindControl("lblID") as Label;
            //int id =Int32.Parse(lblid.Text);
            MianPageManage mian = e.Item.DataItem as MianPageManage;
            int id = 3;
            if (rptPostTity != null)
            {
               
                rptPostTity.DataSource = mian.GetTityName(id
             );
                rptPostTity.DataBind();
            }
        }


要怎么样才能获取到 Label  里的ID值啊?Label  的ID的值是表一的
4 回复
#2
belin20002012-09-28 21:09
public void rptTity_OnItemDataBound(object sender,RepeaterItemEventArgs e)
        {
            Repeater rptPostTity = e.Item.FindControl("rptPostTity") as Repeater;
int id ;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
            Label lblid = e.Item.FindControl("lblID") as Label;
            id =Int32.Parse(lblid.Text);
}
else
{id = 3;
}
            MianPageManage mian = e.Item.DataItem as MianPageManage;
if (rptPostTity != null)
            {
               
                rptPostTity.DataSource = mian.GetTityName(id
             );
                rptPostTity.DataBind();
            }
        }

试试
#3
belin20002012-09-28 21:11
其实我不建议 嵌套, 能一次解决的,何必用嵌套呢? 查询两个表,不是可以返回两个表的数据吗?用 jion (sql)语句 不是可以很好的返回想要的两个表的数据吗?

[ 本帖最后由 belin2000 于 2012-9-28 21:15 编辑 ]
#4
qinglong3322012-10-10 12:07
有些东西,还真得用嵌套控件。
public void rptTity_OnItemDataBound(object sender,RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
    {
        Repeater rptPostTity = e.Item.FindControl("rptPostTity") as Repeater;
        Label lblid = e.Item.FindControl("lblID") as Label;
        int id = -1;
        if(int.TryParse(lblid.Text, out id))
        {
            MianPageManage mian = e.Item.DataItem as MianPageManage;     // 这里不解,数据源是泛型?
            if (rptPostTity != null)
            {
                rptPostTity.DataSource = mian.GetTityName(id);
                rptPostTity.DataBind();
            }
        }

        // 如果数据源是DataTable的话,这个地方的ID也可以这么取到吧
        // RepeaterItem rptItem = (RepeaterItem)e.Item;
        // DataRow itemDataRow = (rptItem.DataItem as DataRowView).Row;
        // int id = itemDataRow.Field<int>("ID");
    }
}
#5
nielin1232012-10-11 14:59
使用NamingContainer容器就行了
1