私はこれまで、ここや他のウェブ上で見つけられたいくつかの異なるソリューションを試しました。たぶんあなたの知識豊富な多くの人が助けることができるかもしれません...asp.netを使ってコントロール(子コントロール付き)を複製/コピーする方法は?
私は、セッション状態でコントロールコレクションとして格納しているユーザーによって動的に作成されたコントロールの束を持っているので、すべてのポストバック。
ユーザーが生成する各コントロールは、内部に他のコントロールを持つdivです。
私は、コントロールを削除するか、またはコントロールを複製するためのボタンを各コントロールに用意しています。
ユーザーが「Duplicate」をヒットすると、私はイベントを処理するWebメソッドを呼び出しています。
私のWebメソッドは、私がそのコントロールのコピーを作成し、page_Unloadのページ(コントロールコレクションに保存して別の関数プラン(にそれを追加したい、コントロールが重複することが見つかっ)
Dim DupCtrl As Control = Nothing
Dim int As Integer = myDynControls.Count
For i = 0 To int - 1
If myDynControls(i).ID.Contains(ctrlID) Then
DupCtrl = Clone_Control(myDynControls(i))
Exit For
End If
Next
End Function
そしてClone_Control機能:残念ながら
Public Shared Function Clone_Control(OriginalControl As Object) As Object
Dim type As Type = OriginalControl.[GetType]()
Dim properties As Reflection.PropertyInfo() = type.GetProperties()
Dim retObject As [Object] = type.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, Nothing, OriginalControl, Nothing)
For Each propertyInfo As Reflection.PropertyInfo In properties
If propertyInfo.CanWrite Then
propertyInfo.SetValue(retObject, propertyInfo.GetValue(OriginalControl, Nothing), Nothing)
End If
Next
Return retObject
End Function
; PropertyInfo.SetValueを起動する行.... 常にエラーが発生した:
"Exception has been thrown by the target of an invocation."
と私はのInnerExceptionを見て:
"Cannot get inner content of dynDiv_FormCtrl_Wrapper_10432 because the contents are not literal."
誰もがこの作業を取得するために正しい方向に私を指すよう助けてくださいことはできますか?
読んでいただきありがとうございます!
おかげで、私は本当に私のWebメソッドを介してこれを実行する必要があります。 コントロールのクローンを作るのはとても難しいとは思いません! – wotney