我试图使用.tostring.remove(n)
从字符串的末尾去除字符。代码低于IIf
声明确认该字符串是ISNullOrEmpty并返回True
或False
。如果true
返回""
字符串被放置在aspx页面(这工作正常),问题出现在第二部分,当IsNullOrEmpty返回False
时触发。InLine IIF Expression&DataBinder.Eval未按预期方式运行
在一个False
值字符串长度被检查,如果字符串是等于或大于17个字符长则返回一个True
值和字符串使用.ToString.Remove(n)
如果返回False
值,则该字符串被截断保持不动。
的问题是,如果该字符串是1个字符或20个字符以下错误保持发生: startIndex must be less than length of string
这里是代码块:
<%# IIf(String.IsNullOrEmpty(Convert.ToString(DataBinder.Eval(Container.DataItem, "SponsorEmail"))),
"",
IIf(Convert.ToString(DataBinder.Eval(Container.DataItem, "SponsorEmail")).Length > 17,
Eval("SponsorEmail").ToString.Remove(17),
Eval("SponsorEmail")))%>
的数据库表中的DataBinder的被拉伸它的数据来自NULLS,只有在任何给定记录存在NULL或空字符串时才会发生。
请帮忙,这让我疯狂!
很高兴你告诉我这个,我会花更多的时间试图理解为什么当字符串不够长时,它试图执行那部分代码.... –