Equivalência de um asp: HiddenField para um GridView
-
23-08-2019 - |
Pergunta
Não há asp:. HiddenField que pode ser usado em um GridView então eu queria saber o que iria trabalhar semelhante a este
Meu raciocínio para querer isso é que tenho um ButtonField que desencadeia uma OnRowCommand. De lá, eu posso descobrir qual linha foi selecionada, mas não pode recuperar o valor de texto do ButtonField para ver os dados que foram ligados a ele (por meio DataTextField).
A minha solução para este era ter um BoundField e apenas recuperar o valor de texto a partir dele, em vez, desde que eu já sabia qual linha foi selecionado. Isso funcionou, mas eu preciso dele para ser escondido.
Alguém sugeriu o uso de um HiddenField aninhada dentro de um TemplateField, mas tive problemas recuperando o valor de texto do que HiddenField. Existe alguma maneira para acessar o controle dentro do TemplateField para obter o valor de texto do HiddenField?
Se alguém tiver alguma sugestão de alternativas que seria ótimo também.
Obrigado,
Matt
Solução
Você pode usar o DataKeyNames propriedade no Gridview.
gridView.DataKeyNames = { "values", "you", "want "};
e então você pode acessá-los como este:
gridView.DataKeys[rowId].Values["value"];
Outras dicas
Você pode usar um campo do modelo com o CommandArgument igual ao do ID do registro / linha.
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false"
CommandName="SomeCommand" Text="Button" CommandArgument='<%# Eval("SomeID") %'></asp:LinkButton>
</ItemTemplate>
Então, em caso manuseio comando linha que você pode obter esse valor por e.CommandArgument
É possível adicionar outra coluna ID, como representante exclusivo para um registro (linha)? Essa coluna ID particular pode ser definido com estilo:. Display = nenhum, a fim de escondê-lo, mas ainda assim o ID está dentro do formulário HTML
e então você pode recuperar o valor dessa coluna ID particular a ser processado.
espero que isso ajude,
hadi