关于DataGrid的记录定位

xiaoyao128 2005-11-21 04:47:21


比如说我有一个datatable填充到了datagrid中
里边有个字段是年份
我如何在窗体初始化的时候,将datagrid的焦点就放置在当年的那一条记录呢?

...全文
191 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
掐死温柔 2005-11-24
  • 打赏
  • 举报
回复
进行比较啊,是当年的就把焦点给它.
marvelstack 2005-11-24
  • 打赏
  • 举报
回复
/如果DataGrid只是帮定一个表,
CurrencyManager bindingManager = (CurrencyManager)this.BindingContext[this.DataGrid1.DataSource];
//如果多个表,比如DataSet,
CurrencyManager bindingManager = (CurrencyManager)this.BindingContext[this.DataGrid1.DataSource,this.DataGrid1.DataMember];
//如果你定位在最后一条
bindingManager.Position = bindingManager.Count-1;
如果是符合条件的一条,
那你遍历bindingManager.List集合,得到符合记录的索引再设置.
bindingManager.List[i]可以转换成DataRow或DataRowView。根据你绑定的对象决定。
exia 2005-11-23
  • 打赏
  • 举报
回复
解决就好!
xiaoyao128 2005-11-23
  • 打赏
  • 举报
回复
到此结束,问题还是自己解决了,不过还是谢谢大家
SaSBYa 2005-11-22
  • 打赏
  • 举报
回复
选中的那一行是不是你要的?
jerrie_1 2005-11-22
  • 打赏
  • 举报
回复
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DateTime currentTime = new DateTime();
currentTime = DateTime.Now;
if( e[2].ToString() == currentTime.Year.ToString() )
e.Item.BackColor = Color.Green;
}
xiaoyao128 2005-11-22
  • 打赏
  • 举报
回复
谢谢楼上两位,问题我已于昨天解决
datagrid的select方法只是选中该行,并不能定位小箭头那个焦点吧?
起先我也用的是楼上的方法,不过效果不佳

下面是我用的代码:

DateTime currentTime = new DateTime();
currentTime = DateTime.Now;
for(int k =0;k<datatable.Rows.Count;k++)
{
if( datatable.Rows[k][2].ToString() == currentTime.Year.ToString() )
dataGrid1.CurrentRowIndex = k;
}
q_po_o 2005-11-22
  • 打赏
  • 举报
回复
我觉得应该改一下 :)

private void button2_Click(object sender, System.EventArgs e)
{
for(int i=0;i<this.dataGrid1.VisibleRowCount;i++)
{
if(this.dataGrid1[i,0].ToString()=="100")//年份在dataGrid1的什么地方就直接把列的位置替换掉(把0替掉)
{
n=i;
break;/////
}
}
dataGrid1.CurrentCell=new DataGridCell(n,0);
this.dataGrid1.Select(n);/////
}
止戈而立 2005-11-21
  • 打赏
  • 举报
回复
private void button2_Click(object sender, System.EventArgs e)
{
for(int i=0;i<this.dataGrid1.VisibleRowCount;i++)
{
if(this.dataGrid1[i,0].ToString()=="100")//年份在dataGrid1的什么地方就直接把列的位置替换掉(把0替掉)
{
n=i;
return;
}
}
this.dataGrid1.Select(n);
}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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