.net 当数据源是DataTable时,如何从GridView中删除?
我的数据源是一个数据表,由加载页面中的文件系统数据填充。没有数据库。如何从DataTable中删除行并重新绑定?我认为这必须在GridView_row命令的“删除”部分完成.net 当数据源是DataTable时,如何从GridView中删除?,.net,gridview,.net,Gridview,我的数据源是一个数据表,由加载页面中的文件系统数据填充。没有数据库。如何从DataTable中删除行并重新绑定?我认为这必须在GridView_row命令的“删除”部分完成 if(e.CommandName == "Delete") ... 当我试图访问数据行的 //get the datatable DataTable dt = this.gridCPCP.DataSource as DataTable; // Delete the record foreach (DataRow
if(e.CommandName == "Delete")
...
当我试图访问数据行的
//get the datatable
DataTable dt = this.gridCPCP.DataSource as DataTable;
// Delete the record
foreach (DataRow dr in dt.Rows)
{
....
dt
为空。删除记录时如何引用数据表?e.CommandArgument应提供应删除行的索引。
您可以在没有删除项的情况下将datatable再次绑定到网格。我无法使用此代码
dt
在与foreach
语句一起的行上为空。我需要知道如何在这个方法中引用DataTable(gridview_row命令)。我在for循环中已经有了代码:if(dr[“ID”].ToString()==“e.CommandArgument”{//do stuff}
,但是如果没有对数据表的引用,它就无法到达那里。如果在每次回发时不将网格绑定到数据表,回发后就没有对数据表的引用(不推荐)。但是您有ViewState提供的CommandArgument来标识您必须删除的内容。通常,您会从数据库中删除此内容。我不知道您必须删除的内容,因为我不知道此网格的用途以及数据表包含的数据。您可以从网格中删除该行,或使其不可见,或者希望删除该行是项,重新加载datatable并将此新datatable绑定到网格(首选)。行仅表示一些文件及其两个属性。此datatable是在page_load中构建的。删除代码将删除该文件。因此,当再次调用page_load时,它将在文件系统中找不到该文件,也不会向表中添加行。然后,您可以将filepath设置为RowDataBound中的CommandArgument f.e。您可以在RowDataBound中设置为保存对datatable的引用以及路径…或者当您将filepath存储在(in)可见列中时,您可以通过索引(存储为CommandArgument)访问该行及其控件:this.gridCPCP.Rows(index)