private void rpt1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
Label lbl_date = (Label)e.Item.FindControl("lbl_InputDay");
Response.Write(lbl_date.Text.ToString());
}
得不到label的值,但是显示的时候正常:
<td width="315" height="20">&nbsp;
<asp:label id="lbl_InputDay" runat="server">
<%# Convert.ToDateTime(DataBinder.Eval(Container.DataItem,"InputDay")).ToString("yyyy-MM-dd") %>
</asp:label></td>
怎么改啊?

解决方案 »

  1.   

    在Page_Load,数据绑定的时候加上
    if (!Page.IsPostBack)
            {
    数据绑定
            }试试
      

  2.   

    判断是不是数据行和交替行
     if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            { }
      

  3.   

    <td   width= "315 "   height= "20 "> &nbsp;
    <asp:label   id= "lbl_InputDay " runat= "server " Text="<%#   Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "InputDay ")).ToString( "yyyy-MM-dd ")   %>">
    </asp:label> </td> 
      

  4.   

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    rpt1绑定数据
    }
    }
    protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    Label   lbl_date   =   (Label)e.Item.FindControl( "lbl_InputDay "); 
    Response.Write(lbl_date.Text.ToString()); 
    }
    }
      

  5.   

    <asp:label   id= "lbl_InputDay "   runat= "server " 
    Text='<%# Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "InputDay ")).ToString( "yyyy-MM-dd ") %>' >
    </asp:label>