ここで他の開発者が作成した別のフォームをエミュレートしようとしています。DevExpress グリッドビューで、各行ではなくフィルター行に新しい行ボタンを追加しました。カスタムボタンをフィルター行の適切な場所にコピーすることで、その方法を見つけました。
私の質問は、どのように機能を追加するのですか? ドキュメントで addnewrow() メソッドを見つけましたが、DataTable() クラスが必要で、取得方法がわかりませんでした。手伝って頂けますか?今日、ASPxGridView コントロールを使い始めたばかりなので、これは私にとってまったく新しいことです。
DevExpress の gridview に新しい行を追加するために見つけたコードの一部を次に示します。しかし、私は間違った軌道に乗っているように感じます。それに関する私の最初の質問は、DataTable クラスはどこにありますか? これを行う簡単な方法はありますか?
DataTable GetTable()
{
//You can store a DataTable in the session state
DataTable table = Session["Table"] as DataTable;
if (table == null)
{
table = new DataTable();
DataColumn colid = table.Columns.Add("ID", typeof(Int32));
DataColumn nameid = table.Columns.Add("Name", typeof(String));
table.PrimaryKey = new DataColumn[] { colid };
colid.ReadOnly = true;
for (int i = 0; i < 23; i++)
{
DataRow aRow = table.NewRow();
aRow["ID"] = i;
aRow["Name"] = String.Format("Name{0}", i);
table.Rows.Add(aRow);
}
Session["Table"] = table;
}
return table;
}
protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
{
ASPxGridView grid = sender as ASPxGridView;
DataTable table = GetTable();
table.Rows.Add(new Object[] { e.NewValues["ID"], e.NewValues["Name"] });
Session["Table"] = table;
e.Cancel = true;
grid.CancelEdit();
}