Colocar o mesmo controle de asp.net em diferentes áreas de uma página
-
18-09-2019 - |
Pergunta
Tenho algum código que herdei e não é o melhor do mundo, mas funciona, com uma pequena exceção:
Esta página é uma pesquisa de diretório, possui controles identificados pelo ID do registro, no entanto, existe uma situação em que pode haver mais de um resultado com o mesmo ID de registro, fazendo assim o .NET BARF. Eu havia implementado originalmente um cheque que simplesmente não colocava o controle na página, se já estivesse lá, mas estamos recebendo feedback negativo.
Minha pergunta é a seguinte: existe uma maneira de colocar o mesmo controle em dois lugares de uma só vez, por exemplo, se um usuário verificar um, o correspondente também verifica? Não sou muito bem versado em como o .NET se comporta, mas tentarei fornecer o máximo de contexto adicional possível, se necessário.
EDIT: Aqui está o código atualizado que gera os controles looping sobre um datatable de resultados
Dim cbxSendInfo As CheckBox
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Debug.text = Debug.text & " Loading Checkbox (" & strCheckboxID & ")...<br />"
cbxSendInfo = New CheckBox
cbxSendInfo.ID = strCheckboxID
cbxSendInfo.enableViewState = true
E aqui está o código que encontra os controles e cria a lista de contatos:
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Dim cbxSendInfo As CheckBox = Me.tblResults.FindControl(strCheckboxID)
If cbxSendInfo.Checked Then
alOrganizers.Add(drOrganizer("ID"))
End If
Onde o drorganizer ("id") é o ID do registro, e eu é o número do registro de resultado.
Sei que essa é uma maneira terrível de fazer isso, pelo menos do meu fundo, mas, como eu disse, esse código herdado foi invadido em pedaços.
Solução 2
Acho que consegui produzir o resultado que queria, tenho uma caixa de seleção para ambas as entradas, elas não se alternam, mas tudo bem. Consegui anexar o número da linha do resultado ao ID da caixa de seleção.
Outras dicas
você só pode fazer isso através JavaScript
Você pode ter resultados duplicados, mas se o ID do registro for a chave, algo está errado. Além disso, não entendo o que o ID de controle tinha a ver com o ID do registro; Uma amostra de código pode ajudar :-)