ASP.NET DataGrid は非常に優れたテーブル コントロールとして知られていますが、DataGrid のデータ送信機能を例にとると、DataGrid の編集機能を賞賛することはできません。DataGrid では、1 行ごとに編集する必要があります。 , いわゆる「単行編集、単行投稿」です。この場合、編集する行が多すぎるとユーザーの操作が煩雑になるだけでなく、頻繁なアクセスの原因にもなります。サーバーに接続され、システム効率が大幅に低下します。
もちろん、編集したい内容を他のページに転送してTextBox内で編集するという解決策も復活します。しかし、よく考えてみると、この方法は自分自身を欺いているのではありませんか? また、グリッド内で編集する場合、応答が Enter Events の場合、常に Tab キーを使用してグリッド (TextBox) 間を移動できるわけではありません。プログラマーは開発に多くのエネルギーを浪費します。
上記の問題を解決するにはどうすればよいでしょうか?ここで、私が使用している国内向け DataGrid をお勧めします。SmartGrid (Sky Software Station からダウンロードできます: http://www.skycn.com/soft/23547.html )。私はこのコントロールを長い間使用しています。次に、SmartGrid の複数行送信方法について説明します。SmartGrid には DataGrid にボタン列がありません。代わりに、1 行または複数行を変更しても、すべてを一度に送信できます。例を見てみましょう:
例:
上の図は、複数の行または 1 行を編集して、まとめて送信できることを示しています。
コード:
ボタン コードを変更します:
private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//編集を開始
this.DataGrid1.AllowAdd = true;//
this の追加を許可します。DataGrid1.AllowDelete = true; //削除を許可する
}
このコードは、スマートグリッドの独自の属性で、
ボタン コードの追加、削除、編集、保存のさまざまな機能を設定できます。
private void Button2_Click(オブジェクト送信者, System.EventArgs e)
{
DataTable
t = (DataTable)this.SmartGrid1.DataSource
;
this.sqlDataAdapter1.Fill
(t);
.SmartGrid1.DataSource = t;
}
これは、データを全体としてデータベースに送信する方法であり、
データを1
行ずつ
サーバー コードに送信する方法もあります
。btonSave_Click(オブジェクト送信者、System.EventArgs e)
{
DataTable
tb=(DataTable)this.SmartGrid1.DataSource;
SqlParameter[]parameters=new SqlParameter[5]
{
parameters[0]=new SqlParameter("@customerId", ""+dr[1]+"")
パラメータ
[1]=new SqlParameter("@companyName",""+dr[0]+"");
SqlParameter("@contactName", ""+dr[2]+"")
パラメータ[
3]=new SqlParameter("@contactTitle",""+dr[3]+"");
SqlParameter("@address", ""+dr[4]+"");
//EamPd はストアド プロシージャを実行するための関数です。EamPd.Execute
("CreatLayer) ",パラメータ);
}
}