7 个解决方案
#1
你的检索条件是不是检索出来的纪录是唯一的,如果是,则可以定义table的主键,可以根据主键搜索值,然后在datagrid中设置CurrentIndex,既可以
#2
比如有个主键字段叫recid,你检索到满足条件的记录的recid以后,
。。。。。
private int GetPageIndexFromID(int nrecid)
{
int nRetValue = -1;
for (int i=0; i<grid1.DataKeys.Count; i++)
if (nrecid == (int) grid1.DataKeys[i])
{
nRetValue = i;
break;
}
return nRetValue;
}
这样得到的就是该记录在DataGrid里的索引号,把它赋给grid1.SelectedIndex就可以了。
。。。。。
private int GetPageIndexFromID(int nrecid)
{
int nRetValue = -1;
for (int i=0; i<grid1.DataKeys.Count; i++)
if (nrecid == (int) grid1.DataKeys[i])
{
nRetValue = i;
break;
}
return nRetValue;
}
这样得到的就是该记录在DataGrid里的索引号,把它赋给grid1.SelectedIndex就可以了。
#3
上面的方法你要设置grid1.DataKeyField="recid"
#4
Mark
#5
1. 设置你的datagrid的datasource为dataview.
2. dataView.Sort = "Id"; // 你的字段
3. int index = dataView.Find( value );
if( index > -1 )
datagrid.CurrentRowIndex = index;
2. dataView.Sort = "Id"; // 你的字段
3. int index = dataView.Find( value );
if( index > -1 )
datagrid.CurrentRowIndex = index;
#6
To lsfyfan(Jackfan):
采用你的方法,在没有插入新记录的时候是可以的,但是一旦增加了新的记录进去,那么Find()返回来就不是正确的Index了。比如说,新增了两条数据,它们的Id一个是-2,另外一个是-3,那用dataView.Find("-2")返回来的不是正确的Index。不知道为什么。
采用你的方法,在没有插入新记录的时候是可以的,但是一旦增加了新的记录进去,那么Find()返回来就不是正确的Index了。比如说,新增了两条数据,它们的Id一个是-2,另外一个是-3,那用dataView.Find("-2")返回来的不是正确的Index。不知道为什么。
#7
或者你直接把检索到的记录的索引值(DataGrid中的索引值)赋给grid1.SelectedIndex就可以了
#1
你的检索条件是不是检索出来的纪录是唯一的,如果是,则可以定义table的主键,可以根据主键搜索值,然后在datagrid中设置CurrentIndex,既可以
#2
比如有个主键字段叫recid,你检索到满足条件的记录的recid以后,
。。。。。
private int GetPageIndexFromID(int nrecid)
{
int nRetValue = -1;
for (int i=0; i<grid1.DataKeys.Count; i++)
if (nrecid == (int) grid1.DataKeys[i])
{
nRetValue = i;
break;
}
return nRetValue;
}
这样得到的就是该记录在DataGrid里的索引号,把它赋给grid1.SelectedIndex就可以了。
。。。。。
private int GetPageIndexFromID(int nrecid)
{
int nRetValue = -1;
for (int i=0; i<grid1.DataKeys.Count; i++)
if (nrecid == (int) grid1.DataKeys[i])
{
nRetValue = i;
break;
}
return nRetValue;
}
这样得到的就是该记录在DataGrid里的索引号,把它赋给grid1.SelectedIndex就可以了。
#3
上面的方法你要设置grid1.DataKeyField="recid"
#4
Mark
#5
1. 设置你的datagrid的datasource为dataview.
2. dataView.Sort = "Id"; // 你的字段
3. int index = dataView.Find( value );
if( index > -1 )
datagrid.CurrentRowIndex = index;
2. dataView.Sort = "Id"; // 你的字段
3. int index = dataView.Find( value );
if( index > -1 )
datagrid.CurrentRowIndex = index;
#6
To lsfyfan(Jackfan):
采用你的方法,在没有插入新记录的时候是可以的,但是一旦增加了新的记录进去,那么Find()返回来就不是正确的Index了。比如说,新增了两条数据,它们的Id一个是-2,另外一个是-3,那用dataView.Find("-2")返回来的不是正确的Index。不知道为什么。
采用你的方法,在没有插入新记录的时候是可以的,但是一旦增加了新的记录进去,那么Find()返回来就不是正确的Index了。比如说,新增了两条数据,它们的Id一个是-2,另外一个是-3,那用dataView.Find("-2")返回来的不是正确的Index。不知道为什么。
#7
或者你直接把检索到的记录的索引值(DataGrid中的索引值)赋给grid1.SelectedIndex就可以了