【问题标题】:Search function in DataGridView in C#?C#中DataGridView中的搜索功能?
【发布时间】:2016-04-05 12:04:59
【问题描述】:

我有点不知所措,但我似乎无法弄清楚这一点。

我有一个从 .xml 文件读取的 DataGridView,它显示大约 2000 个邮政编码(及其相应的 ID)。自然,这有点阅读,所以我正在考虑实现一个搜索功能。理想情况下,用户可以通过在文本框中输入任何数字(邮政编码或 ID)来查找它。这样的事情肯定是可能的。

作为一个初学者,我不知道该怎么做。有没有对这个问题有用的函数或表达式?

【问题讨论】:

  • 是xml数据源还是数据表?
  • 显然我使用了一个数据集。没有数据源也没有数据表。

标签: 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();
    }
}

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 2015-02-21
    • 2014-12-05
    相关资源
    最近更新 更多