2009-06-12 73 views
0

我的ASP.NET Web窗体上有一个占位符和用户控件动态添加到它。这些控件大多都有文本框。有时有两个用户控件,有时有十个。一切都按预期工作。我的问题是关于如何实现一个新功能。从一个动态创建用户控制信息复制到另一个动态创建用户控制

我的客户必须从第一控制数据复制到另一个控制检查与所讨论的额外控制相关的复选框,一个新的请求。

起初,这听起来容易...一个复选框添加到占位每个用户控件,然后写一些JavaScript来将数据从第一控制的额外控制复制。然后我意识到,通过用户控件中的文本框,我实际上无法直接修改HTML输入。

接下来我开始考虑添加将自动回发的复选框,但我该如何去动态地添加复选框到占位符,然后想出一种方法来添加事件处理程序到复选框并传递信息循环控制并复制值是必需的。这种方法似乎太复杂了,为了实现我的目标需要太多的开销。

有什么建议吗?

+0

你有JavaScript作为一种标签,但在你的问题没有提到它...是用出来的这个问题? – 2009-06-12 17:45:37

回答

0

您提到,自复选框都在用户控件,你不必对它们的访问。

你能使用用户控件的属性暴露的ClientID,然后用它们在JavaScript中工作吗?事情是这样的:

user_control { 
    int checkboxId { get { return checkbox.ClientId; } } 
} 

如果你有更多的代码,将是有益的......

0

这可能是为时已晚,以帮助你,但只是让另一个答案就在那里...... 包括复选框作为用户控件的一部分可以大大简化问题。

我有一个类似的情况,用户控件中可能有10-15个用户界面控件,第一个复选框与第一个复选框关联,当选中时,意味着我应该将信息从第一个用户控件复制到所有其他。

因为它都是在代码隐藏中构建的,所以我只是暴露了名为ShowCheckBox的用户控件的布尔属性,该控件切换了复选框的可见性。我在第一个中设置为true,在其他所有设置中设置为false。因此,我知道该事件只能通过点击第一个用户控件的复选框来提高。然后,在复选框的事件处理程序中,我处理从第一个用户控件到所有其他控件的复制。 (顺便说一下,一定要在该复选框上设置AutoPostBack=true,否则你会问为什么这个事件不会触发。)

Javascript肯定会提供更好的用户体验,但这对我而言并没有要求我想出如何获得ClientId值到javascript中。 (虽然这正是我现在需要做的,这是我偶然发现了这个问题。:-))