【问题标题】:Search function in DataGridView in C#?C#中DataGridView中的搜索功能?
【发布时间】:2016-04-05 12:04:59
【问题描述】:
我有点不知所措,但我似乎无法弄清楚这一点。
我有一个从 .xml 文件读取的 DataGridView,它显示大约 2000 个邮政编码(及其相应的 ID)。自然,这有点阅读,所以我正在考虑实现一个搜索功能。理想情况下,用户可以通过在文本框中输入任何数字(邮政编码或 ID)来查找它。这样的事情肯定是可能的。
作为一个初学者,我不知道该怎么做。有没有对这个问题有用的函数或表达式?
【问题讨论】:
标签:
c#
search
datagridview
dataset
【解决方案1】:
你可以像这样使用
public partial class WebForm1 : System.Web.UI.Page
{
public List<DataRow> lstData { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
loadgrid();
}
public void loadgrid()
{
DataTable dt = GetTable();
List<DataRow> lstCollection = dt.AsEnumerable().ToList();
lstData=lstCollection;
GridView1.DataSource = dt;
GridView1.DataBind();
}
static DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("Id", typeof(int));
table.Columns.Add("ZipCode", typeof(string));
// Here we add five DataRows.
for (int i=1; i<=100 ; i++)
{
table.Rows.Add(i, "Z00"+i);
}
return table;
}
public void SearchResult(string SearchParameter)
{
if (lstData != null)
{
if (SearchParameter != "")
{
if (lstData != null)
{
List<DataRow> dt2 = lstData.FindAll(a=>a.ItemArray[0].ToString()== SearchParameter || a.ItemArray[1].ToString().ToLower() == SearchParameter.ToLower());
GridView1.DataSource = dt2.CopyToDataTable();
GridView1.DataBind();
}
}
else
{
GridView1.DataSource = lstData.CopyToDataTable();
GridView1.DataBind();
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string SearchText = TextBox1.Text.ToString().Trim();
SearchResult(SearchText);
}
protected void Button2_Click(object sender, EventArgs e)
{
GridView1.DataSource = lstData.CopyToDataTable();
GridView1.DataBind();
}
}