gpt4 book ai didi

C# 调用事件处理程序动态

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:33 26 4
gpt4 key购买 nike

我正在尝试使用序列化字典(controlId - 字符串,controlValue - 字符串)保存来自一个 WebForm 的所有控件。接下来我想反序列化该字典并用它们的值动态填充控件。

问题是我的某些控件具有 AutoPostBack true 和事件处理程序。 有没有办法动态调用这些事件处理程序?我想避免通过控件的 id 进行另一个切换。

例如:

foreach (KeyValuePair<string, string> kvp in dict)
{
Control c = findControlRecursive(Page, kvp.Key);
if (c != null)
{
switch (c.GetType().Name)
{
case "TextBox":
((TextBox)c).Text = kvp.Value;
if (((TextBox)c).AutoPostBack) .......

编辑:

假设我有 10 种不同的形式。每个都有大约 50 个控件。我想添加/编辑一组数据。我尽量避免在数据库中使用每个控件都有列的表,这就是我想使用序列化的原因。

最佳答案

在我看来,您正在尝试重新发明轮子。 ASP.NET 提供了 WebUserControl 类,它可以在不同的页面上使用,并作为一组控件的容器。您可以为这些控件定义事件处理程序,无论您在哪个页面上使用它们,它们都会被适本地调用。

因此,我建议您使用基于 WebUserControl 的方法而不对控件进行序列化/反序列化。这是一个简单有效的解决方案。

关于C# 调用事件处理程序动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834094/

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