RowFilter:dataGridView 行在编辑后消失
Posted
技术标签:
【中文标题】RowFilter:dataGridView 行在编辑后消失【英文标题】:RowFilter: dataGridView rows disappearing after edit 【发布时间】:2018-06-02 21:34:57 【问题描述】:我有一个使用 RowFilter 填充的 dataGridView:
private void ResultsFunc()
ColumnToSearch = comboBox1.Text;
if (textBox1.Text.Length == 0)
ToSearchBy = listBox1.SelectedItem.ToString();
else if (textBox1.Text.Length > 0)
ToSearchBy = textBox1.Text;
dt = aSH_ORDER_DBDataSet.ASH_PROD_ORDERS;
dv = new DataView(dt);
dv.RowFilter = ColumnToSearch + " = " + "'" + ToSearchBy + "'";
dataGridView1.DataSource = dv;
当我在其中一个返回的行中编辑我搜索的参数时,它们会从 dataGridView 中消失,有没有办法阻止这种情况发生?
我希望在编辑值后仍能看到该行。
【问题讨论】:
你只在这个函数(resultsfunc)中填充gridview吗? @dan6657 不,我也在运行时用这个填充它:aSH_PROD_ORDERSTableAdapter.Fill(aSH_ORDER_DBDataSet.ASH_PROD_ORDERS); 我猜他们可能不会,但是这两个群体会相互抵消吗?您的 resultsFunc 是否也从页面加载运行? 是的,如果我运行 Resultsfunc,它将清除视图并仅显示结果,反之亦然。 Resultsfunc 只会在用户点击搜索按钮时显示 很可能需要在页面加载中填充网格,请参阅下面的答案,如果您对此答案有疑问,请提出更多问题! 【参考方案1】:答案很可能是因为当您编辑参数时 - 调用 PageLoad 运行 PageLoad();函数(一种刷新页面)而不运行所有其他依赖 onclicks 的函数(填充表格)
为了解决这个问题,您很可能需要在页面加载中与函数一起填充网格视图,或者也只需从页面加载中调用函数。
使用公共静态变量将参数的当前值存储在您的 onclick(或设置参数的任何位置)中,然后将此参数传递给您的页面加载,并使用选定的当前参数填充数据..
【讨论】:
我认为你说的是正确的,在编辑值后它会刷新页面,并且我的任何 RowFilter 都会再次应用。我不确定如何使用页面加载,我在哪里可以找到该功能? Pageload 函数应该在你的 c# 类的开头,如果那是你保存它的地方 - protected void Page_Load(object sender, EventArgs e) 哦,对不起,这是一个 WFP,所以它是 Form_load,它只在程序启动时运行一次。 啊,好吧,它似乎在没有你的人口的情况下更新/刷新,所以我猜你也需要找到哪里并在那里填充你的网格。以上是关于RowFilter:dataGridView 行在编辑后消失的主要内容,如果未能解决你的问题,请参考以下文章
C# DataGridView.DefaultView.RowFilter 与 charlist
如何让c#winform 根据datagridview数据筛选 filter
dataGridView 怎么显示指定的行,其他的不显示。希望有详细的代码,谢谢!