DataGridView 行数据隐藏--SOS

timothy888 2009-12-14 10:14:51
在WinForm的自定义控件中,写了一个DataGridView,给他的数据源是一个DataTable,然后根据条件遍历DataGridView的数据行,符合条件的就隐藏该行数据,否则不做操作下一条判断。
可是目前,代码写了,也不报错,但是为什么画面出来之后就是没有把符合数据的数据行给隐藏掉。。。。
代码:
for (int intAlterDtRows = 0; intAlterDtRows <= AlterDt.Rows.Count - 1; intAlterDtRows++)
{
if (gvShow.Rows[intAlterDtRows].Cells["单位"].Value.ToString().Trim().Equals
(gvShow.Rows[intAlterDtRows].Cells["修正单位"].Value.ToString().Trim()))
{
//gvShow.Rows[intAlterDtRows].Visible = false;//该数据行隐藏,不能实现效果
//gvShow.Columns["单位"].Visible = false;//但是隐藏某列却能实现
}
}

我怀疑是不是我写的这个DataGridView是不是给它设置了什么属性,或者是因为没有设置什么属性,导致代码没错,但是不能实现隐藏效果?
可是我看了下属性页没有什么特殊的属性啊,具体如下:
//设置GridView属性
gvShow = new DataGridView();
gvShow.Size = new Size(730,300);
gvShow.Location = new Point(32,50);
gvShow.BackgroundColor = Color.White;
gvShow.RowHeadersVisible = false;
gvShow.AllowUserToAddRows = false;
gvShow.AllowUserToDeleteRows = false;
gvShow.AllowUserToResizeColumns = false;
gvShow.AllowUserToResizeRows = false;
gvShow.ScrollBars = ScrollBars.Vertical;
gvShow.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
gvShow.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
gvShow.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
ShowForm.Controls.Add(gvShow);
gvShow.DataSource = AlterDt;

请问,哪位有相同经历并已解决问题的兄弟指点下!没分了,谅解下。。。。
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl2024 2010-02-08
  • 打赏
  • 举报
回复
学习了,哈 学习了,哈
hnjhjzyyxgs 2009-12-15
  • 打赏
  • 举报
回复
直接对datatable进行过滤宠幸绑定:
DataTable dt=AlterDt.clone()
DataRow[] dr=dt.select(单位<>修正单位);
for(int i=0;i<dr.length;i++)
{
dt.ImportRow(dr[i]);
}
然后绑定你的gvShow.datasource=dt;

OK 问题解决。
liu2835993 2009-12-14
  • 打赏
  • 举报
回复
不知 WinForm DataGridView有没有RowDataBound事件

有的话如下:


if (e.Row.RowType == DataControlRowType.DataRow)
{
if (判断条件)
{

e.Row.Visible = false;
}
}

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧