0

ここで他の開発者が作成した別のフォームをエミュレートしようとしています。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();
    }
4

1 に答える 1

0

これを行う前に、少し一般的な知識を得る必要があります。データ バインディングの説明についてはこちらを、ASPxGridView編集デモについてはこちらをご覧ください。(見つけたサンプルのように) セッションにデータを保存する方法はめったにありません。
新しい行を追加するには、ASPxClientGridView.AddNewRowクライアント側メソッドを使用できます。したがって、ClientInstanceNameASPxGridView (例grid1)に割り当てgrid1.AddNewRow()、ボタン クリック イベント - ASPxButton.ClientSideEvents.Clickを呼び出します。

于 2012-06-19T09:21:54.993 に答える