我有一个网格,每页有100个页面和10个项目(网格的大小是动态的) 我有一个删除命令。一切正常。现在我需要添加递归删除命令,它是gonig从网格中删除所有行。网格中的每一行
我试图做到这一点:
foreach (GridDataItem item in RadGrid1.Items)
{
}
,但只计算单页上的行(除去10只记录一次)
如何运行,他同样的事情每一行在整个电网?
gv.Items.count
也给出了10
我有一个网格,每页有100个页面和10个项目(网格的大小是动态的) 我有一个删除命令。一切正常。现在我需要添加递归删除命令,它是gonig从网格中删除所有行。网格中的每一行
我试图做到这一点:
foreach (GridDataItem item in RadGrid1.Items)
{
}
,但只计算单页上的行(除去10只记录一次)
如何运行,他同样的事情每一行在整个电网?
gv.Items.count
也给出了10
我假设这是对radgrid控件的ASP.NET AJAX,但随时纠正我,如果我错了。
RadGrid将只包含当前显示的项目。因此,如果您的页面大小为10,它将只包含RadGrid.Items集合中的10个项目。
如果您想访问RadGrid的所有项目,最好的方法是返回到原始数据源。因此,如果这是一个DataSet,我只需使用一些服务器端逻辑从数据中删除项目,然后调用.Rebind()到RadGrid,它将更新网格以显示当前项目。但是,如果转到原始数据源不是一个选项,则可以始终将AllowPaging设置为false(在RadGrid的MasterTableView上),调用.Rebind(),执行所有逻辑(RadGrid.Items将立即包含所有项目),然后将AllowPaging设置为true并再次调用.Rebind()。虽然这样效率稍低,但可以很好地工作。
尽管最重要的是回到底层数据。如果您试图从RadGrid中删除所有数据,为什么不将数据源设置为空数组并调用.Databind()或.Rebind()?比一次删除RadGrid中的所有项目快得多。
carlbergenhem建议的解决方案是有意义的。但是,如果您希望从数据库中清除数据,则可以通过运行SQL DELETE命令将其删除,然后重新绑定网格。
DELETE FROM <<YOUR TABLE NAME>> WHERE <<CONDITION>>
我想你正在遍历一个循环,其中一些元素在前一遍循环中已经被删除。我怀疑它只能每页删除。 – Arun
它的确如此,但是如果我将RadGrid1.Databind()放入循环中,它可能会解决这个问题,但会稍微慢一些。 – user194076