を使用して、文字列の末尾から文字を削除しようとしています.tostring.remove(n)。ステートメントの下のコードでIIf、文字列が ISNullOrEmpty であることを確認し、 or を返しTrueますFalse。trueの文字列が aspx ページに配置されて返された場合""(これは正常に動作します)、IsNullOrEmpty が を返したときにトリガーされる 2 番目の部分で問題が発生しますFalse。
値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")))%>
データバインダーがデータを描画しているデータベース テーブルでは、NULL が許可されます。これは、特定のレコードに NULL または空の文字列が存在する場合にのみ発生します。
助けてください、それは私を狂わせています!!!