1
我有一個啓用了調頁的gridview和一個文本框,用戶可以在其中輸入一個字符串值,用於選擇gridview中與該字符串值匹配的列的行。該列的數據不是主鍵,並未列在datakeynames中。基於唯一單元格值在頁面調度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的不可見的網頁上,此行返回null:
GridViewRow result = query.FirstOrDefault();
如何在啓用分頁的gridview中找到匹配的行?
我已經添加了字段搜索值到GridView的DataKeyNames屬性:的DataKeyNames =「FrameId, FrameName「,在你的例子中用」FrameName「代替」foo「。這工作正常,如果匹配的行在當前頁面中,但是當它在另一個頁面中時,我會得到運行時錯誤:Sequence包含沒有匹配的元素。我不確切知道錯誤是指什麼。我在你的解釋中遺漏了什麼?感謝您的時間。 – lynnjwalker