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