思归大哥和各位大侠,看看这个怪异的问题吧。
问题的原贴是http://community.csdn.net/Expert/topic/3651/3651216.xml?temp=.6471063。真正的原因通过逐步排除找到了,但是这个问题的是在怪异啊。看看吧:
<cc1:WebDataGrid ……
<asp:TemplateColumn Visible="False" HeaderText="接收时间1"><ItemTemplate><asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.audittime1") %>'>
</asp:Label></ItemTemplate> </asp:TemplateColumn>…………这样的asp:TemplateColumn 一个5个,其id分别为Label1 ,Label2,Label3……Label5。
<asp:TemplateColumn HeaderText="接收时间"><ItemTemplate><asp:Label id=ShowTime runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.audittime1") %>'></asp:Label></ItemTemplate>……</cc1:WebDataGrid>
然后服务器端的代码是:
private void WebDataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{if((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem)){for(int i=1;i<6;i++){//是否是当前用户Label luserid = (Label)e.Item.FindControl("audit" + i.ToString());if(luserid.Text.Equals(userid.ToString())){//显示时间的列 Label timeToShow = (Label)e.Item.FindControl("ShowTime");
//从五个时间列中选择合适的显示
Label l = (Label)e.Item.FindControl("Label" + i.ToString());
//timeToShow.Text = l.Text.Substring(0,10);//这一句就是出现问题的地方
timeToShow.Text = l.Text;//这一句就不会出错}
方法的大意是:从五个Label中选择一个合适的将其Substring(0,10)赋给timeToShow结果出错了。出现的错误就是http://community.csdn.net/Expert/topic/3651/3651216.xml?temp=.6471063中描述的问题。