<asp:Repeater ID="rpt_data" runat="server" OnItemDataBound="rpt_onDataBound">
<ItemTemplate>
....
<asp:PlaceHolder runat="server" ID="PlaceHolder1">
                        <td align="center"><asp:Literal ID="ltr_status" runat="server" Text="<%#Eval("status")%>"></asp:Literal></td>
                    </asp:PlaceHolder>
                </tr>
            </ItemTemplate>cs文件中:    protected void rpt_onDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Header)
        {
                Control c = e.Item.FindControl("PlaceHolder1");
                if (c != null)
                {
                    PlaceHolder p = (PlaceHolder)c;
                    Literal ltr_status = (Literal)e.Item.FindControl("ltr_status");
                    .....
                }
        }
    }Literal ltr_status = (Literal)e.Item.FindControl("ltr_status");
获取不到控件,用p.FindControl("ltr_status");同样返回null,未将对象设置到对象

解决方案 »

  1.   

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Header)
            {
                    Control c = e.Item.FindControl("PlaceHolder1");
                    if (c != null)
                    {
                        PlaceHolder p = (PlaceHolder)c;
                        foreach(Control c in p.Controls)
                        {
                         if(c is Litera){}
                        }
                    }
            }
      

  2.   

    Header模板里面有 PlaceHolder1吗???
      

  3.   

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
      

  4.   

    第一个错误是:
    Text="<%#Eval("status")%>">
    应该是单引号:
    Text='<%#Eval("status")%>'>第二个错误,Literal应该在PlaceHolder中找            PlaceHolder p = (PlaceHolder)e.Item.FindControl("PlaceHolder1");
                Literal L = (Literal)p.FindControl("ltr_status");
                string a=L.Text;
      

  5.   

    asp:Literal不要用空上.
    使用asp:label试试.
      

  6.   

    Literal在PlaceHolder中找也没找到,用wuyq11(人生如梦) 的方法搞定了,结贴