wot*_*ney 5 vb.net asp.net clone dynamic-controls
到目前为止,我已经尝试了在网上和网上其他地方找到的一些不同的解决方案.也许你们其中一个知识渊博的人可能会帮助...
我有一堆由用户动态创建的控件,我将其作为控件集合存储在会话状态中,因此我可以在每次回发时显示它们.
用户生成的每个控件都是一个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
Run Code Online (Sandbox Code Playgroud)
而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
Run Code Online (Sandbox Code Playgroud)
不幸; 启动PropertyInfo.SetValue的行....总是出错:
"Exception has been thrown by the target of an invocation."
Run Code Online (Sandbox Code Playgroud)
当我看到InnerException:
"Cannot get inner content of dynDiv_FormCtrl_Wrapper_10432 because the contents are not literal."
Run Code Online (Sandbox Code Playgroud)
任何人都可以请帮助指出我正确的方向让这个工作?
谢谢阅读 !
ssi*_*777 -1
我不清楚你的要求,但如果你可以在客户端执行此操作,那么 jquery 克隆方法将是一个不错的选择。
.clone() 方法执行匹配元素集的深层复制,这意味着它复制匹配元素及其所有后代元素和文本节点。
有关更多信息Jquery .clone()
| 归档时间: |
|
| 查看次数: |
4850 次 |
| 最近记录: |