チェックボックスリストの各チェックボックスの後に div を追加するカスタム チェックボックス コントロールを作成しています。クラスは以下。
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Globalization
Public Class MyCheckboxListCheckBox
Inherits CheckBoxList
Implements IRepeatInfoUser
Protected Overrides Sub RenderItem(ByVal itemType As ListItemType, ByVal repeatIndex As Integer, ByVal repeatInfo As RepeatInfo, ByVal writer As HtmlTextWriter)
writer.WriteBeginTag("input")
writer.WriteAttribute("type", "checkbox")
writer.WriteAttribute("name", UniqueID)
writer.WriteAttribute("id", (ClientID & "_") + repeatIndex.ToString(NumberFormatInfo.InvariantInfo))
writer.WriteAttribute("value", Items(repeatIndex).Value)
Dim attrs As System.Web.UI.AttributeCollection = Items(repeatIndex).Attributes
For Each key As String In attrs.Keys
writer.WriteAttribute(key, attrs(key))
Next
writer.Write(">")
writer.Write(Items(repeatIndex).Text)
' writer.Write("<div id=" & "mynewDiv" & Items(repeatIndex).Value & "></div>")
End Sub
End Class
しかし、ページで使用して保存を呼び出すとエラーが発生します。エラーは次のとおりです。
startIndex を文字列の長さより大きくすることはできません。パラメーター名: startIndex 説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.ArgumentOutOfRangeException: startIndex を文字列の長さより大きくすることはできません。パラメータ名: startIndex
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[ArgumentOutOfRangeException: startIndex は文字列の長さより大きくすることはできません。パラメータ名: startIndex]
System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) +7492915
System.Web.UI.WebControls.CheckBoxList.LoadPostData(String postDataKey, NameValueCollection postCollection) +60
System.Web.UI.WebControls. CheckBoxList.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +13
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +346
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint 、ブール値 includeStagesAfterAsyncPoint) +1743
何か案は ?