如何从asp.net中的datagrid中删除行

时间:2014-05-22 14:40:34

标签: c# asp.net datagrid

我有一个datagrid dgCompanies声明如下:

// bind the data to the datagrid
dgCompanies.PageSize = pageSize;
dgCompanies.DataSource = rdr;

然后我需要检查此数据网格中的记录:

int j = 0;
foreach (DataGridItem item in dgCompanies.Items)
{
    HtmlGenericControl name = (HtmlGenericControl)item.Cells[j].FindControl("SpanTitle");   
    string drstring = name.InnerHtml.Trim();

    if (checkingfunction(drstring))
    {
       //do removing record from datagrid.
        I tried this:  item.Cells.Remove(item.Cells[j]); but the result still there, don't see anything removed!
    }

    j = j + 1;                    
 }

 dgCompanies.DataBind();

如果条件满足,我怎样才能从datagrid dgCompanies中删除该记录?

1 个答案:

答案 0 :(得分:0)

我同意@Andrei,最好不要退回那些数据。否则,您将返回并搅拌不必要的数据。但是,如果您不能预先过滤数据,我想您可以添加一个css类" donotshow"到你的行(见How do I specify CSS classes for specific rows in a GridView?)。

然后使用jquery使用

$('.donotshow').hide();

同样,在这方面,您仍然将所有HTML返回到浏览器,这样会使您的页面大小超出必要的范围。此外,如果你使用它,使用这种方法可能会搞砸分页(例如,如果它说"行1-10和#34;,但隐藏了5行,那么看起来会很傻)。

希望这有帮助