我正在尝试模拟这里其他开发人员创建的另一种形式。在 DevExpress 网格视图中,他向筛选器行添加了一个新的行按钮,而不是添加到每一行。我想出了通过将自定义按钮复制到过滤器行中的适当位置来做到这一点的方法。
我的问题是如何向其添加功能?我在文档中找到了addnewrow()方法,但它需要一个DataTable()类,我不知道如何获得。你可以帮我吗?我今天刚开始使用您的 ASPxGridView 控件,所以这对我来说是全新的。
以下是我找到的一些代码,用于在 DevExpress 的网格视图上添加新行。 但感觉我走错了路。 我关于它的第一个问题是在哪里可以找到 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();
}
在执行此操作之前,您应该获得一些一般知识。在此处查找数据绑定说明,在此处查找 ASPxGridView 编辑演示。在会话中存储数据(如在发现的示例中)很少是一种方法。
至于添加新行,您可以使用ASPxClientGridView.AddNewRow客户端方法。因此,将 ClientInstanceName 分配给 ASPxGridView(例如 grid1
) 并调用grid1.AddNewRow()
按钮单击事件 - ASPxButton.ClientSideEvents.Click。