C# 如何向DevExpress GridView控件中的自定义新行按钮添加功能

C# 如何向DevExpress GridView控件中的自定义新行按钮添加功能,c#,asp.net,devexpress,C#,Asp.net,Devexpress,我试图模仿其他开发人员创建的另一个表单。在DevExpress网格视图中,他将一个新行按钮添加到过滤器行,而不是每一行。我通过将自定义按钮复制到过滤器行中的适当位置,找到了实现方法 我的问题是如何向它添加功能?我在文档中找到了addnewrow()方法,但它需要一个DataTable()类,我不知道如何获取该类。你能帮助我吗?我今天刚开始使用您的ASPxGridView控件,所以这对我来说是全新的 下面是我在DevExpress的gridview上添加新行的一些代码。但感觉我走错了方向。关于它,

我试图模仿其他开发人员创建的另一个表单。在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();
    }
DataTable GetTable()
{
//可以在会话状态下存储数据表
DataTable=会话[“表”]作为DataTable;
如果(表==null)
{
table=新数据表();
DataColumn colid=table.Columns.Add(“ID”,typeof(Int32));
DataColumn nameid=table.Columns.Add(“Name”,typeof(String));
table.PrimaryKey=新数据列[]{colid};
colid.ReadOnly=true;
对于(int i=0;i<23;i++)
{
DataRow aRow=table.NewRow();
aRow[“ID”]=i;
aRow[“Name”]=String.Format(“Name{0}”,i);
table.Rows.Add(aRow);
}
会话[“表”]=表;
}
返回表;
}
受保护的无效网格行插入(对象发送方,DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
{
ASPxGridView grid=发送方为ASPxGridView;
DataTable=GetTable();
table.Rows.Add(新对象[]{e.NewValues[“ID”],e.NewValues[“Name”]});
会话[“表”]=表;
e、 取消=真;
grid.CancelEdit();
}

在进行此操作之前,您应该了解一些常识。查找数据绑定解释,并在此处查找。在会话中存储数据(如您发现的示例)很少是一种可行的方法。

至于添加新行,您可以使用客户端方法。因此,分配给您的(例如,
grid1
)并在单击事件的按钮上调用
grid1.AddNewRow()

你能解释一下你想要实现什么吗?您需要使用DataTable吗?是否要将网格绑定到从数据库检索数据的datasource?我正在尝试向筛选器行添加一个新按钮,而不是在每个数据行中都添加它。我不知道是否需要使用DataTable。是的,我想绑定网格。