Para editar dados no controle DataGrid, use a coluna "Editar, Atualizar, Cancelar" na "Coluna de botões". Eles podem ser definidos como o controle DataGrid no gerador de propriedades do
controle DataGrid (use o nome do controle dg1 como um exemplo), haverá mais uma coluna no controle dg1 na página. Cada item nesta coluna é um LinkButton/Button com o texto "Editar".
Se você clicar no botão "Editar" de uma linha, a linha estará no modo de edição, o botão "Editar" será substituído pelos botões "Atualizar" e "Cancelar" e todas as outras colunas auxiliares de dados não somente leitura no linha será Altere-o para um formato de controle TextBox para que os usuários possam editá-lo e modificá-lo.
Quando o usuário modifica os dados da coluna de dados não somente leitura (no controle TextBox), clica no botão "Atualizar", salva o novo valor (geralmente no banco de dados), clica no botão "Cancelar", a linha Sair modo de edição.
Para obter o efeito de mudar para o modo de edição de linha clicando no botão "Editar", o método de tratamento de eventos EditCommand de dg1 deve ser escrito. Para obter o efeito de salvar o novo valor clicando no botão "Atualizar", o método de tratamento de eventos UpdateCommand de dg1 deve ser escrito. Para clicar no botão "Cancelar" para sair do modo de edição de linha, você deve editar o método de tratamento de eventos CancelCommand de dg1
1) método de tratamento de eventos dg1.EditCommand - insira a edição de linha. modo
-------------------------------------------------- ----
private void dg1_EditCommand (fonte do objeto, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //Definir o índice do item a ser editado;
binddg1(); //Método para vincular dados a dg1. Depois de definir o item a ser editado, é necessário religar dg1
}
-------------------------------------------------- -------
2) Método de tratamento de eventos dg1.CancelCommand - Sair do modo de edição de linha
-------------------------------------------------- -------
private void dg_CancelCommand (fonte do objeto, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //O índice do item editado é -1, o que significa que nenhum item é editado.
binddg1(); //Após redefinir EditItemIndex, é necessário religar dg1
}
-------------------------------------------------- -------
3) Método de tratamento de eventos dg1.UpdateCommand - Salvar valores atualizados Para salvar valores atualizados, você deve primeiro obter esses novos valores da página. No método de processamento de eventos, três funções principais devem ser implementadas:
Obtenha valores atualizados, atualize esses valores e saia do modo de atualização de linha.
Geralmente, os dados exibidos no controle DataGrid são obtidos da tabela do banco de dados, portanto, o valor atualizado também deve ser salvo no banco de dados. Você pode usar uma instrução SQL de atualização ou um procedimento armazenado para realizar a atualização.
Obter os valores das colunas de uma página consecutiva no modo de edição requer alguns truques. Tome colunas de ligação como exemplo:
Obtenha o valor de uma coluna vinculada somente leitura: e.Item.Cells[column index].Text //A coluna de ajuda somente leitura está em um estado não editável Obtenha o valor de uma coluna vinculada não somente leitura: ((TextBox)(e.Item. Cells[Column Index].Controls[0])).Text //No estado de edição,
a coluna de ajuda somente leitura é geralmente a coluna de chave primária na tabela. usado na cláusula where da instrução update Geralmente, eles não são atualizados
.
-------------------------------------------------- --------
private void DataGrid1_UpdateCommand (fonte do objeto, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//Coluna vinculada somente leitura, em estado não editável
string ID do cliente = e.Item.Cells[1].Text;
//Coluna vinculada não somente leitura, em estado de edição
string nomedaempresa = ((TextBox)(e.Item.Cells[2].Controls[0])).Text;
string city = ((TextBox)(e.Item.Cells[3].Controls[0])).Text;
String strSql = "atualizar clientes set companyname = '" + companyname +
"',cidade = '" + cidade + "' onde clienteid = '" + clienteid + "'";
executeSql(strSql); //Executa a instrução de atualização para atualizar
DataGrid1.EditItemIndex = -1;
vinculardg1();
}