2016-04-05 17 views
0

私はここで一種の損失を抱えていますが、これを理解できないようです。C#のDataGridViewでの検索機能ですか?

私はDataGridViewを.xmlファイルから読み込み、およそ2000の郵便番号とそれに対応するIDを表示します。当然のことながら、それは少し読んでいるので、私は検索機能を実装することを考えています。理想的には、ユーザはテキストボックスに数字を入力することによって任意の数字(郵便番号またはID)を検索することができる。このような何かは確かに可能でなければなりません。

初心者であれば、これについてどうやって行くのかは分かりません。この問題に役立つ関数や表現がありますか?これは、XMLデータソースやデータテーブル

+0

ように使用することはできますか? –

+0

明らかに私はDataSetを使用しました。データソースがなく、データテーブルもありません。 – Neckbeard2016

答えて

0

あなたは

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