Pergunta

I escrever um imagebutton a uma célula da tabela em uma nova linha quando um usuário seleciona um item em uma lista:

ImageButton imgbtnRemove = new ImageButton();
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.ImageUrl = items.remove;
imgStatus.AlternateText = "Remove";
tRow.Cells[3].Controls.Add(imgbtnRemove);

Quando a nova imagebutton é clicado, eu não consigo obter um identificador para ele. Eu vê-lo em caso Page_PreRender, onde também recarregar a tabela em cada nova postagem.

string returnData = Request.Form.ToString();

mas iteração através das imagens controles de formulário:

if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)

não encontrá-lo. Eu posso encontrá-lo se eu colocar manualmente em um:

imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);

no Page_Load e depois agarrá-lo no evento clique:

switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...

mas porque há novas linhas que estão sendo adicionados e excluídos, isso fica bastante feio programaticamente. Eu estou pensando que deve haver uma solução elegante para criação imagebutton dinâmica e recuperação em tempo real a partir do código do lado do servidor. Eu fiz um monte de cavar, mas este está me stumping.

Obrigado antecipadamente ...

Foi útil?

Solução

Se você estiver criando controles dinâmicos durante a fase de manipulação de eventos do ciclo de vida de página (por exemplo, no item evento selecionado), em seguida, o controle será ido na próxima postagem.

Para controles dinâmicos para ser registrado com ViewState, eles têm de ser criados na fase de início do ciclo de vida do evento.

Além disso, você diz que está a iteração por meio de controles do formulário ... quando você está adicionando o imagebutton às células da tabela. Você está recursivamente descer a hierarquia de controle para procurar o imagebutton?

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