を使用して、文字列の末尾から文字を削除しようとしています.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 または空の文字列が存在する場合にのみ発生します。
助けてください、それは私を狂わせています!!!