作成日: 2018/07/26 最終更新日: 2018/07/26
文書種別
使用方法
詳細
フィルタボタンを表示して、FilterButtonClickイベントで独自の実装することで部分一致でのフィルタリングが可能です。
◎サンプルコード(VB)
◎サンプルコード(C#)
◎サンプルコード(VB)
Imports C1.Win.C1TrueDBGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
For i = 0 To 9
dt.Rows.Add(String.Format("A{0:000}", i Mod 3), String.Format("B{0}", i))
Next
dt.AcceptChanges()
' TrueDBGridの設定
C1TrueDBGrid1.DataSource = dt
C1TrueDBGrid1.FilterBar = True
For i = 0 To C1TrueDBGrid1.Columns.Count - 1
C1TrueDBGrid1.Splits(0).DisplayColumns(i).FilterButton = True
Next
End Sub
Private Sub C1TrueDBGrid1_FilterButtonClick(sender As Object, e As ColEventArgs) Handles C1TrueDBGrid1.FilterButtonClick
' データビューとデータ列の取得
Dim cm As CurrencyManager = Me.BindingContext(C1TrueDBGrid1.DataSource)
Dim dv As DataView = cm.List
Dim col As C1DataColumn = C1TrueDBGrid1.Columns(C1TrueDBGrid1.Col)
' 独自のフィルタ処理の実装
Dim filter As String = String.Empty
If Not String.IsNullOrEmpty(col.FilterText) AndAlso col.DataType.Name = "String" Then
filter = col.DataField & " LIKE '*" + col.FilterText + "*'"
End If
dv.RowFilter = filter
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
For i = 0 To 9
dt.Rows.Add(String.Format("A{0:000}", i Mod 3), String.Format("B{0}", i))
Next
dt.AcceptChanges()
' TrueDBGridの設定
C1TrueDBGrid1.DataSource = dt
C1TrueDBGrid1.FilterBar = True
For i = 0 To C1TrueDBGrid1.Columns.Count - 1
C1TrueDBGrid1.Splits(0).DisplayColumns(i).FilterButton = True
Next
End Sub
Private Sub C1TrueDBGrid1_FilterButtonClick(sender As Object, e As ColEventArgs) Handles C1TrueDBGrid1.FilterButtonClick
' データビューとデータ列の取得
Dim cm As CurrencyManager = Me.BindingContext(C1TrueDBGrid1.DataSource)
Dim dv As DataView = cm.List
Dim col As C1DataColumn = C1TrueDBGrid1.Columns(C1TrueDBGrid1.Col)
' 独自のフィルタ処理の実装
Dim filter As String = String.Empty
If Not String.IsNullOrEmpty(col.FilterText) AndAlso col.DataType.Name = "String" Then
filter = col.DataField & " LIKE '*" + col.FilterText + "*'"
End If
dv.RowFilter = filter
End Sub
End Class
◎サンプルコード(C#)
using System;
using System.Data;
using System.Windows.Forms;
using C1.Win.C1TrueDBGrid;
namespace sampleCS
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
c1TrueDBGrid1.FilterButtonClick += C1TrueDBGrid1_FilterButtonClick;
}
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
DataTable dt = new DataTable("Test");
dt.Columns.Add("ColA", typeof(String));
dt.Columns.Add("ColB", typeof(String));
for (int i = 0; i < 10; i++)
{
dt.Rows.Add(string.Format("A{0:000}", i % 3), string.Format("B{0}", i));
}
dt.AcceptChanges();
// TrueDBGridの設定
c1TrueDBGrid1.DataSource = dt;
c1TrueDBGrid1.FilterBar = true;
for (var i = 0; i < c1TrueDBGrid1.Columns.Count; i++)
{
c1TrueDBGrid1.Splits[0].DisplayColumns[i].FilterButton = true;
}
}
private void C1TrueDBGrid1_FilterButtonClick(object sender, ColEventArgs e)
{
// データビューとデータ列の取得
CurrencyManager cm = this.BindingContext[c1TrueDBGrid1.DataSource] as CurrencyManager;
DataView dv = cm.List as DataView;
C1DataColumn col = c1TrueDBGrid1.Columns[c1TrueDBGrid1.Col];
// 独自のフィルタ処理の実装
string filter = String.Empty;
if (!String.IsNullOrEmpty(col.FilterText) && col.DataType.Name == "String")
{
filter = col.DataField + " LIKE '*" + col.FilterText + "*'";
}
dv.RowFilter = filter;
}
}
}
using System.Data;
using System.Windows.Forms;
using C1.Win.C1TrueDBGrid;
namespace sampleCS
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
c1TrueDBGrid1.FilterButtonClick += C1TrueDBGrid1_FilterButtonClick;
}
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
DataTable dt = new DataTable("Test");
dt.Columns.Add("ColA", typeof(String));
dt.Columns.Add("ColB", typeof(String));
for (int i = 0; i < 10; i++)
{
dt.Rows.Add(string.Format("A{0:000}", i % 3), string.Format("B{0}", i));
}
dt.AcceptChanges();
// TrueDBGridの設定
c1TrueDBGrid1.DataSource = dt;
c1TrueDBGrid1.FilterBar = true;
for (var i = 0; i < c1TrueDBGrid1.Columns.Count; i++)
{
c1TrueDBGrid1.Splits[0].DisplayColumns[i].FilterButton = true;
}
}
private void C1TrueDBGrid1_FilterButtonClick(object sender, ColEventArgs e)
{
// データビューとデータ列の取得
CurrencyManager cm = this.BindingContext[c1TrueDBGrid1.DataSource] as CurrencyManager;
DataView dv = cm.List as DataView;
C1DataColumn col = c1TrueDBGrid1.Columns[c1TrueDBGrid1.Col];
// 独自のフィルタ処理の実装
string filter = String.Empty;
if (!String.IsNullOrEmpty(col.FilterText) && col.DataType.Name == "String")
{
filter = col.DataField + " LIKE '*" + col.FilterText + "*'";
}
dv.RowFilter = filter;
}
}
}
旧文書番号
83086