回答
去更大的列如
for (i = 2; i < grdview.columns.count; i ++)
{
grdview.columns[2].remove();
}
它是未经测试的代码。请检查一下。
for (i = 2; i < gridView.Columns.count; i ++)
{
gridView.Columns[i].Remove();
}
修正
while(gridView.Columns.count>2)
{
gridView.Columns.RemoveAt(2);
//Or gridView.Columns.RemoveAt(gridView.Columns.Count -1);
}
这样做的问题是,在删除索引2处的列之后,索引3处的*为*的列现在将位于索引2处。除非我误认为,这意味着您会得到“索引超出范围”例外。 – 2010-06-28 09:34:07
我不认为人会得到“索引越界”异常,因为gridView.Columns.count每轮都会重新评估。但是许多列不会被删除(大约一半)。 – 2010-06-28 09:50:41
啊,对啊! – 2010-06-28 10:20:40
我不是C#程序员,但我认为在德尔福(同一种语言建筑师)集合是基于0。因此
for (i = gridView.Columns.count - 1; i > 1; i --)
{
gridView.Columns[i].Remove();
}
如果从2删除对gridView.Columns.count - 1,那么你将不会删除所有列,当列被删除,他们得到转移,即两个列的第一个删除后,列现在排名第三,现在是第二,但下一列将被排除,第三(i = 3)。
备选:
while (gridView.Columns.Count > 2)
{
gridView.Columns[gridView.Columns.Count - 1].Remove();
}
我相信你有这个ASP.NET会做工作。但是,我想知道为什么要删除列。我可以给你一个更好的解决方案。
foreach(DataGridColumn col in vGrid.Columns)
{
col.Visible = false;
}
vGrid.Columns[0].Visible = true;
vGrid.Columns[1].Visible = true;
,或者如果您使用的是模板字段
foreach(TemplateField col in vGrid.Columns)
{
col.Visible = false;
}
vGrid.Columns[0].Visible = true;
vGrid.Columns[1].Visible = true;
您可以使用下面的代码:
while(grid.Columns.Count > 2)
{
Grid.Columns.RemoveAt(grid.Columns.Count - 1);
}
它更容易隐藏列,而不是删除,因为删除的元素枚举会导致枚举器被重置,因此您需要执行一个添加操作来考虑这种行为,IMO。
using System.Linq;
GridView1.Columns
.OfType<DataControlField>()
.Where(c => GridView1.Columns.IndexOf(c) > 1)
.ToList()
.ForEach(c => c.Visible = false);
或
foreach(var c in GridView1.Columns
.OfType<DataControlField>()
.Where(c => GridView1.Columns.IndexOf(c) > 1))
{
c.Visible = false;
}
- 1. 如何清除gridview
- 2. 如何清除gridview?
- 3. 如何清除GridView中的数据?
- 4. 如何清除错误gridview
- 5. [R列清单比1
- 6. 如何清除gridview行的选择?
- 7. 如何清除winforms中的gridview数据devexpress?
- 8. 如何比较GridView中的两列值?
- 9. 比较Gridview列
- 10. 如何清除stringlist中的指针?
- 11. 清除C++中的STL指针列表
- 12. 如何清除NiFi队列?
- 13. 使用javascript清除gridview/jquery
- 14. Gridview绑定意外清除
- 15. 在c#中清除Gridview
- 16. 清除列数据
- 17. 返回除-1指数
- 18. 如何清除SimplePager(GWT)中的文本“1-1 of 0”?
- 19. 清除列中的数据
- 20. 如何清除手指油漆?
- 21. 如何清除/清除VxWorks中的消息队列缓冲区?
- 22. 如何清除生成的列而不清除ItemTemplate字段
- 23. 如何散列和比较指向成员函数的指针?
- 24. 如何比较列数据与GridView中的字符串
- 25. 如何清除列表清单中列出的项目:Android
- 26. JavaScript函数运行1秒后清除?
- 27. 如何从剪贴板清除指定的格式数据?
- 28. 如何清除c中的字符指针数组?
- 29. gridview列删除
- 30. 如何清除createCriteria中的列表?
这将工作。然而,删除列(2)总是会导致额外的列向下移动,这使得代价很高。 – 2010-06-28 09:53:28