簡體   English   中英

C#在Datagrid中搜索

[英]C# search in Datagrid

我想在我的Datagrid中獲得一個搜索方法。 我通過數據集中的數據綁定填充我的數據網格。

      <Grid Name="Grid_Kind" Background="#FFFFAF00">
    <DataGrid x:Name="DataGridKind" ItemsSource="{Binding}" AutoGenerateColumns="False" Margin="0,21,0,166">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=KindID}" Header="ID" Width="Auto" />
            <DataGridTextColumn Binding="{Binding Path=VNaam}" Header="Voornaam" Width="Auto" />
            <DataGridTextColumn Binding="{Binding Path=ANaam}" Header="Achternaam" Width="Auto" />
            <DataGridTextColumn Binding="{Binding Path=Straat}" Header="Straat" Width="Auto" />
            <DataGridTextColumn Binding="{Binding Path=Huisnummer}" Header="Huisnummer" Width="Auto" />
            <DataGridTextColumn Binding="{Binding Path=Plaats}" Header="Plaats" Width="Auto" />
            <DataGridTextColumn Binding="{Binding Path=Postcode}" Header="Postcode" Width="Auto" />
        </DataGrid.Columns>
    </DataGrid>
    <TextBox Height="23" HorizontalAlignment="Left" Name="txtSearch" VerticalAlignment="Top" Width="695" Loaded="txtSearch_Loaded" Text="Zoeken" GotFocus="txtSearch_GotFocus" />

那是迄今為止我得到的Xaml

這是C#的一部分

    dsKind KindDataSet = new dsKind();
    dsKindTableAdapters.KindTableAdapter KindTableAdapter = new dsKindTableAdapters.KindTableAdapter();

    private void FillData()
    {
        KindTableAdapter.Fill(KindDataSet.Kind);
        this.DataContext = KindDataSet.Kind.DefaultView;
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        FillData();
    }

我已將此代碼用作快速搜索選項,其中tsbSearch是ToolStripButton,tsTxtSearch是ToolStripTextBox。

使用DataGridView的BindingSource,它會在文本框中按Enter鍵或Return鍵時按描述(NMS_Description),LongDescription(LongDesc)和位置(LOCATION)自動搜索。

private void tsbSearch_Click(object sender, EventArgs e)
    {
        if (tstxtSearch.Text.Length > 0)
        {
            this.nEAR_MISSBindingSource.Filter = "NMS_Description LIKE '*" + tstxtSearch.Text + "*' OR LongDesc LIKE '*" + tstxtSearch.Text + "*' OR LOCATION LIKE '*" + tstxtSearch.Text + "*'";
        }
        else
        {
            this.nEAR_MISSBindingSource.Filter = "";
        }
    }

    private void tstxtSearch_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Return || e.KeyChar == (char)Keys.Enter)
        {
            tsbSearch_Click(sender, e);
        }
    }

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM