의 데이터 검색 및 필터링이 코드를 사용하여 2 테이블 (내부 조인)과 연결되지만 아무 일도 일어나지 않는 DataGridView의 데이터 검색 및 필터링! 여기 는 코드입니다 :DataGridView C#
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
string sql = @"SELECT Invoice.[InvoiceID], Invoice.[CustomerID], Invoice.[Date], Invoice.[Amount], Invoice.[Paid], Invoice.[Rest], Invoice.[PaymentType], Invoice.[Shipped], Customer.[CustomerID], Customer.[Name], Customer.[Tell], Customer.[Address], Customer.[Comment] FROM [Invoice] INNER JOIN [Customer] ON Invoice.[CustomerID] = Customer.[CustomerID]";
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RechnungConnectionString"].ConnectionString))
using (var cmd = new SqlCommand(sql, conn))
{
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
dt = new DataTable();
sda.Fill(dt);
cmd.ExecuteNonQuery();
GridView1.DataSource = dt;
GridView1.DataBind();
conn.Close();
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
DataView DV = new DataView(dt);
DV.RowFilter = string.Format("Name LIKE '%{0}%'", TextBox1.Text);
GridView1.DataSource = DV;
}
이것은 텍스트 상자이며 GRIDVIEW Asp.net 형태 :
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="InvoiceID" CssClass="table table-striped table-bordered" AllowSorting="true">
몇 가지 중 하나가이 문제를 해결 또는 검색 및 필터 데이터에 대한 더 나은 방법이 방법을 알고있는 경우 GridView plz 도와주세요! 귀하의 텍스트 상자 변경 이벤트가 발사되지만를 Page_Load의 불을 다시 그리드를로드한다
나는 이것을 시도 하나 아무 것도하지 않는다. :) 그리고 TextChanged에서 (adp1은 sda) 또는 Sqlcommand처럼이 코드에 약간의 오류가있다! (Shoma ham hamintoor) –
U는 그 변수에 connectionstring 변수가 있다고 가정합니다. 그러나 @SURFThru가 말했듯이, page_load 이벤트가 발생할 수 있습니다. 확인해 봐. –
그 검색 텍스트 상자를 수정하지만 지금 문제는 텍스트 상자에 쓸 때 Enter 키를 눌러야한다는 것입니다. KeyPress (Windows Form에서)와 같은 이벤트 처리기를 asp.net에서 사용할 수 있습니다. –