Suponha que exista uma tabela Produto com campos (Id, Nome, Quantidade,...) e queremos atualizar o valor da Quantidade em lotes de uma só vez
Primeiro, no Gridview, a coluna Quantidade é exibida como TemplateField, as outras propriedades da coluna são definidas como somente leitura e o formato de exibição é definido como TextBox
<asp:TemplateField HeaderText="Quantidade">
<ItemTemplate>
<asp:TextBox ID="editQuantity" runat="servidor" CssClass="GridEditingRow"
Largura="24px" MaxLength="2" Text='<%#Eval("Quantidade")%>' />
</ItemTemplate>
</asp:TemplateField>
Adicione um controle Button abaixo do GridView e defina o método onclick como updateButton_Click
O código updateButton_Click final é:
protected void updateButton_Click(object sender, EventArgs e)
{
int rowsCount = grid.Rows.Count;
GridViewRow
gridRow;
string
productId
;
//Percorre cada linha no GridView
for (int i = 0; i < rowsCount; i++)
{
// Obtém a linha atual
gridRow = grid.Rows[i];
// Use DATAKEYS para obter o número de ID que não é exibido
Id = grid.DataKeys[i].Value.ToString();
//
quantidadeTextBox = (TextBox)gridRow.FindControl("editQuantidade");
// Converte para inteiro, se a entrada for um caractere ilegal Int32.TryParse retorna FALSE
if (Int32.TryParse(quantityTextBox.Text, quantidade saída))
{
//Chama o método da camada de negócios para atualizar os dados
sucesso = sucesso && BLL.UpdateItem(Id, quantidade);
}
outro
{
//Falha na atualização
sucesso = falso;
}
//exibe informações
statusLabel.Text = sucesso?
"<br />Atualização bem-sucedida!<br />" :
"<br />Falha na atualização!<br />";
}
//Revincula GridVIEW
PopulateGridView();
}
http://www.cnblogs.com/timone/archive/2006/11/17/564171.html