【问题标题】:C# search in Datagrid数据网格中的 C# 搜索
【发布时间】:2015-04-24 23:05:46
【问题描述】:

我想在我的 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();
    }

【问题讨论】:

  • 你在搜索什么?
  • 有什么问题?
  • datagridview 的搜索方法(如果不清楚,请见谅)

标签: c# wpf xaml datagridview datagrid


【解决方案1】:

我将此代码用作快速搜索选项,其中 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);
        }
    }

希望这会有所帮助。

【讨论】:

  • 非常感谢您的反应,但您从哪里获得 nEAR_MISSBindingSource?
猜你喜欢
  • 2018-01-26
  • 2013-12-17
  • 1970-01-01
  • 2013-12-13
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
相关资源
最近更新 更多