0

我有几个用户控件,比如说A、和。基于一些随机输入,我需要生成这些的组合。例如,如果输入是我需要显示两个 A,之后是 3 D,再显示一个 A,等等。BCD2a3d1a2c

我还需要稳定 clientid 以使它们正常工作。因为这些控件中的每一个都使用自己的ClientID属性来收集自己的输入。例如,用户控件 A 在内部生成一个名为 的输入this.ClientID + "$input1",并从诸如 的请求中收集其输入Request[this.ClientID + "$input1"]。由于可以有多个 A,因此每个 A(unique) ClientID在回发后都需要具有相同的 A,以便从请求中获得正确的输入。

4

1 回答 1

0

要动态添加控件,您可以使用面板作为占位符,例如

<asp:Panel ID="ControlPlaceholder" runat="server" />

然后,在服务器端,您可以向其中添加对象,如下所示:

int controlCount = 0;

...

TextBox newTextBox = TextBox();
newTextBox.ID = "ctl_" + controlCount++;
ControlPlaceholder.Controls.Add(newTextBox);

如果您在 Page_Load 事件期间向其中添加控件并使用一致的方法来生成控件的 ID(例如上面的简单计数),那么任何视图状态或事件绑定都将在回发时重新绑定到正确的对象。

于 2008-09-18T08:29:13.417 回答