0

私はいくつかのユーザー コントロールを持っABCますD。いくつかのランダムな入力に基づいて、これらの組み合わせを生成する必要があります。たとえば、入力が2a3d1a2c2 つの A を表示する必要がある場合、その後に 3 つの D を表示し、もう一度 A を表示する必要があります。

クライアント ID が正しく機能するように、クライアント ID を安定させる必要もあります。これらの各コントロールは、独自のClientIDプロパティを使用して入力を収集するためです。たとえば、ユーザーコントロール A は という名前の入力を内部的に生成し、 のthis.ClientID + "$input1"ようなリクエストからその入力を収集しますRequest[this.ClientID + "$input1"]。複数の 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 に答える