Pergunta

Eu tenho vários controles de usuário, digamos A, B, C e D. Com base em alguns entrada aleatória, preciso gerar uma combinação destes. Por exemplo se a entrada é 2a3d1a2c eu preciso mostrar dois do a, 3 D's depois disso, um A de novo, etc.

Eu também terá de estabilizar clientid está em ordem para que eles funcionem corretamente. Porque cada um desses controles usar sua própria propriedade ClientID para reunir as entradas em si mesmos. Por exemplo controle do usuário Um gera internamente uma entrada chamada this.ClientID + "$input1", e reúne sua entrada a partir do pedido como Request[this.ClientID + "$input1"]. Como pode haver mais de um A, cada um, um precisa ter a mesma (unique) ClientID após postback a fim de obter entradas corretas a partir de solicitação.

Foi útil?

Solução

Para adicionar controles dinamicamente, você pode usar um painel como um local reservado, dizem

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

Em seguida, no lado do servidor, você pode adicionar objetos a ele assim:

int controlCount = 0;

...

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

Se você adicionar os controles para ele durante o seu evento Page_Load e usar um método consistente de gerar IDs dos controles (como a da contagem simples acima), então qualquer viewstate ou eventos ligações será re-ligado ao objeto direito sobre uma nova postagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top