フィールド (Id、名前、数量など) を含む Product テーブルがあり、数量の値を一度にバッチで更新したいとします。
まず、グリッドビューで、数量列が TemplateField として表示され、他の列プロパティは読み取り専用に設定され、表示形式は TextBox に設定されます。
<asp:TemplateField HeaderText="数量">
<アイテムテンプレート>
<asp:TextBox ID="editquant" runat="server" CssClass="GridEditingRow"
width="24px" MaxLength="2" Text='<%#Eval("数量")%>' />
</ItemTemplate>
</asp:テンプレートフィールド>
GridView の下に Button コントロールを追加し、onclick メソッドを updateButton_Click として定義します。
最終的な updateButton_Click コードは次のとおりです。
protected void updateButton_Click(object sender, EventArgs e)
{
int rowsCount = GridViewRow
GridRow;
文字
列 productId
= true
;
// GridView の各行を走査します
for (int i = 0; i < rowsCount; i++)
{
// 現在の行を取得します
グリッド行 = グリッド.行[i];
// DATAKEYSを使用して、表示されていないID番号を取得します
Id = グリッド.DataKeys[i].Value.ToString();
//
数量TextBox = (TextBox)gridRow.FindControl("editQuantity");
// 入力が不正な文字の場合、整数に変換します。 Int32.TryParse は FALSE を返します。
if (Int32.TryParse(quantityTextBox.Text, out 数量))
{
// ビジネス層メソッドを呼び出してデータを更新します
success = success && BLL.UpdateItem(Id, 数量);
}
それ以外
{
//アップデートに失敗しました
成功 = false;
}
// 情報を表示します
statusLabel.Text = 成功?
「<br />アップデートが成功しました!<br />」:
"<br />アップデートに失敗しました!<br />";
}
//GridVIEWを再バインド
PopulateGridView();
http://www.cnblogs.com/timone/archive/2006/11/17/564171.html