1
페이징이 활성화 된 gridview 및 문자열 값과 일치하는 열이있는 gridview에서 행을 선택하는 데 사용되는 문자열 값을 입력 할 수있는 텍스트 상자가 있습니다. 열의 데이터는 기본 키가 아니며 데이터 키 이름에 나열되지 않습니다.고유 한 셀 값을 기반으로 페이징 그리드 뷰의 행 선택
비 페이징 gridview에 대한 문제를 해결하는 예제를 발견했습니다. 텍스트 박스와 관련된 버튼을 제어하기위한 이벤트 핸들러 : 바와 같이
protected void SelFrame_Clicked(object sender, EventArgs e)
{
string requestedFrame = tbSelFrame.Text;
if (requestedFrame != "")
{
int index = (from DataControlField col in gvFrame.Columns
where col.HeaderText == "Name"
select gvFrame.Columns.IndexOf(col)).FirstOrDefault();
var query = from GridViewRow row in gvFrame.Rows
where row.Cells[index].Text == requestedFrame
select row;
GridViewRow result = query.FirstOrDefault();
if (result != null)
{
int selectedIndex = result.DataItemIndex;
if (selectedIndex > -1)
gvFrame.SelectedIndex = selectedIndex;
}
}
}
, 검색되는 값의 gridview의 보이지 않는 페이지에, 이 줄 널 반환
GridViewRow result = query.FirstOrDefault();
페이징을 사용하는 gridview에서 일치하는 행을 어떻게 찾을 수 있습니까? , DataKeyNames = "되는 frameID :
나는이 (가)있는 gridview의 datakeynames 속성을 검색 값에 대한 필드를 추가 한을 귀하의 예제에서 "foo"대신 "FrameName"을 사용하고 "FrameName"을 사용했습니다. 일치하는 행이 현재 페이지에 있으면 잘 작동하지만 다른 페이지에있을 때 런타임 오류가 발생합니다. 시퀀스에 일치하는 요소가 없습니다. 나는 그 오류가 무엇을 의미하는지 정확히 모른다. 나는 당신의 설명에서 뭔가를 놓쳤는가? 시간 내 주셔서 감사합니다. – lynnjwalker