gpt4 book ai didi

asp.net - 如何使用asp.net克隆/复制控件(带有子控件)?

转载 作者:行者123 更新时间:2023-12-03 18:04:21 24 4
gpt4 key购买 nike

到目前为止,我已经尝试了在网上和其他地方找到的几种不同的解决方案,但都没有成功。也许你们其中一位知识渊博的人可能会帮助...

我有一堆由用户动态创建的控件,我将它们存储为 session 状态中的控件集合,以便我可以在每次回发时显示它们。

用户生成的每个控件都是一个 div,其中包含其他控件。

我在每个控件上都有一个按钮,允许用户删除控件或复制它。

当用户点击“重复”时,我正在调用处理该事件的网络方法。

当我的 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."

任何人都可以帮助我指出正确的方向以使其正常工作吗?

谢谢阅读 !

最佳答案

我没有清楚地了解您的要求,但是如果您可以在客户端执行此操作,那么 jquery clone 方法将是一个不错的选择。

.clone() 方法执行匹配元素集的深层复制,这意味着它复制匹配元素及其所有后代元素和文本节点。

更多信息 Jquery .clone()

关于asp.net - 如何使用asp.net克隆/复制控件(带有子控件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com