如何在DevExpress GridView控件中为自定义新行按钮添加功能

时间:2012-06-15 18:54:39

标签: c# asp.net devexpress

我正在尝试模仿其他开发人员在此创建的另一个表单。在DevExpress gridview中,他向过滤器行添加了一个新的行按钮,而不是每行。我想通过将自定义按钮复制到过滤器行中的适当位置来了解如何做到这一点。

我的问题是如何添加功能?我在文档中找到了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();
    }

1 个答案:

答案 0 :(得分:0)

在执行此操作之前,您应该掌握一些常识。查看here以获取数据绑定说明,此处查看ASPxGridView editing demos。在会话中存储数据(如您找到的样本)很少是一种方法 至于添加新行,您可以使用ASPxClientGridView.AddNewRow客户端方法。因此,请将ClientInstanceName分配给ASPxGridView(例如grid1)并在按钮点击事件ASPxButton.ClientSideEvents.Click上致电grid1.AddNewRow()