2011-04-30 2 views
3

機能要件は、データベース(SQL Server)から生徒のリスト(3 coloums)をフェッチし、Webページに表示し、データを入力するために各行の前に空白のフィールドを表示することです。次に、ユーザーがテストで学生が採点したマークを入力し、データベース内のマークを更新できるようにする。単一のボタンクリックでASP.netでgridviewを使用して複数の行を更新するにはどうすればよいですか?

これは、グリッドビューを使用して、更新ボタンフィールドを別のcoloumnとして持つことができることを知っています。しかし、その場合は、各行の前に更新ボタンがあり、ユーザーは各学生(100以上)に対してクリックする必要があります。これはユーザーにとって退屈な作業です。

すべての生徒のマークを入力してから、1つのボタンをクリックしてすべての行を更新するようにします。

ボタンクリックイベントでは、GridViewRowsにforeachループを使用できますが、ユーザーインターフェイスを手伝ってください。それを可能にする方法?? 'n'クリックの代わりにシングルボタンクリックを使用する方法

gridviewを使用して行うことはできますか?または、タスクを達成できる他の何かがありますか? 4列目のテンプレートフィールド内の

+0

なぜループを使いたくないのですか? –

答えて

7

場所テキストボックス

<asp:TemplateField HeaderText="Marks Scored"> 
    <ItemTemplate> 
     <asp:TextBox runat="server" ID="txtMarksScored" /> 
    </ItemTemplate> 
</asp:TemplateField> 

おかげで、その後、ボタンの内側にグリッドビューの行をイベントループをクリックし、テキストボックスに値が入力された取得するには、Get。

protected void Submit_Click(object sender, EventArgs e) 
{ 
    foreach (GridViewRow gvr in GridView1.Rows) 
    { 
     TextBox txtMarksScored = (TextBox)gvr.FindControl("txtMarksScored"); 
     // Hope you understand what to do next? 
     // txtMarksScored.Text 
    } 
} 
+0

良いサンプル、私はそれを試していますグリッドのようなExcelのため – ShaunOReilly

+0

ここで私はmysqlからデータをフェッチし、textbox.andの前のレコードを表示したいのですが、それを行うにはedit.howしたいですか? –

0

複数行編集の完全な解決策は、Matt Dotsons Blogにあります。私は自分のアプリケーションで使っています。

最低限必要な作業は、新しいgridviewタイプを登録し、既存のasp:GridViewを新しいタイプと交換するだけでなく、 "SaveButton"のIDをGridViewに伝えることです。このボタンは、変更された各行のRowUpdating/Updatedイベントをトリガーします。

詳細とダウンロード可能なソースコードについては、Dotsons Blogの記事を参照してください。

関連する問題