2012-02-03 10 views
0

グリッドビューを取得しました。グリッドビューには10個の行が含まれていますが、列の1つは編集可能なコンボボックスです。 「編集」ボタンをクリックすると、10行すべてが編集可能になり、変更した行を追跡して、10行すべてをDBに保存しないようにします。それら。今の私のtoughts:グリッドを複数編集/保存する(hiddenfield + javascript)

(行が編集されたことを示すチェックボックスのような)グリッドに余分な非表示の列を作成 コンボボックスのSelectedIndexChangedで私に現在グリッド行を知らせるスクリプトを見つけようとしています私は、グリッドのラインを介して実行し、チェックマークを持っているものを参照して、DB

にそれらの行を保存することができ、「保存」を押すと編集とは

そして、その行の非表示列にチェックマークを設定し、

Javascriptは私の強みではないので、どんなヘルプやヒントもありがたいです。まったく違う解決方法もあります:)

答えて

0

私のソリューション: は私がのHiddenField
Dim hdnField As HtmlInputHidden = DirectCast(e.Row.FindControl("hdnIsChanged"), HtmlInputHidden)

とDropDownListの
Dim ddlTest As DropDownList = CType(e.Row.FindControl("ddlTest"), DropDownList) ddlTest.Attributes.Add("onChange", "Test('" + hdnField.ClientID + "');")

<script type="text/javascript"> 
function Test(hiddenField) { 
    var test = document.getElementById(hiddenField) 
     test.value = "1" 
} 
</script> 
を見つけRowDataBound上のグリッドに続いてグリッド

のItemTemplateにに <input type="hidden" id="hdnIsChanged" runat="server" /> を追加しました

最後に、私はグリッドの行を調べて、どのグリッドが変更されたかを確認できます:

For Each r As GridViewRow In gvTest.Rows 
    Dim hdnField As HtmlInputHidden = DirectCast(r.FindControl("hdnIsChanged"), HtmlInputHidden) 

    If hdnField.Value = "1" Then 
     // do updates 
     End If 
Next 
関連する問題