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

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中描述的问题。
...全文
228 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
头晕,坐在沙发上养养神..

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧