Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 当数据源是DataTable时,如何从GridView中删除?_.net_Gridview - Fatal编程技术网

.net 当数据源是DataTable时,如何从GridView中删除?

.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

我的数据源是一个数据表,由加载页面中的文件系统数据填充。没有数据库。如何从DataTable中删除行并重新绑定?我认为这必须在GridView_row命令的“删除”部分完成

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)