• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

思归大哥和各位大侠,看看这个怪异的问题吧。

lrzvieri 2004-12-22 02:46:27
问题的原贴是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中描述的问题。
...全文
202 点赞 收藏 16
写回复
16 条回复
shang123guan 2004年12月29日
up,我要30分
回复 点赞
landlordh 2004年12月28日
//timeToShow.Text = l.Text.Substring(0,10);//
↓↓↓↓↓↓↓↓↓↓↓↓↓↓
timetoshow.text = l.Text.PadRight(10).Substring(0, 10)
回复 点赞
_甲壳虫 2004年12月28日
SubString(startIndex,length)函数中的参数是有要求的:startIndex 加 length 之和指示一个不在此实例内的位置。 或 startIndex 或 length 小于零。则系统会报ArgumentOutOfRangeException异常。
回复 点赞
vzxq 2004年12月28日
nod 解决了吗?
回复 点赞
tengjian1981 2004年12月28日
up
回复 点赞
luckyprg 2004年12月28日
if(l.Text.Length>10)
{
timeToShow.Text = l.Text.Substring(0,10);
}
else
{
timeToShow.Text = l.Text;
}
回复 点赞
luckyprg 2004年12月28日
l.Text.Substring(0,10)
当l.Text长度小于10时,Substring函数会出错。
所以先加上判断长度的语句再Substring就行了。
回复 点赞
jstxqgb 2004年12月28日
不懂,关注。
帮你顶一下
回复 点赞
precipitant 2004年12月28日
没遇到过。
回复 点赞
xiangding 2004年12月28日
不懂,帮你UP,
回复 点赞
beyondjay 2004年12月23日
回复 点赞
learner01 2004年12月22日
关注!
回复 点赞
learner01 2004年12月22日
up!
回复 点赞
lrzvieri 2004年12月22日
zyw2833()您的答案确实可以的,可是为什么页面不是抛出ArgumentOutOfRangeException呢?而是出现那个错误页面呢?不解。
回复 点赞
zyw2833 2004年12月22日
if(l.Text.Length>10)

l.Text= l.Text.Substring(0,10);
l.Text= l.Text;
回复 点赞
eyetiger0104 2004年12月22日
头晕,坐在沙发上养养神..
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告