내 gridview 내 headerTemplate 내에서 textbox를 사용하여 gridview를 필터링하려고합니다. 현재 TextChanged 이벤트 메서드를 사용하여이 작업을 실행하지만 이벤트 메서드를 실행할 때 'txtID'
의 검색 입력을 기반으로 gridiview를 필터링 할 수 없습니다. TextChanged 이벤트를 사용하여 gridview를 필터링하는 방법은 무엇입니까?
protected void grdAdjAMT_TextChanged(object sender, EventArgs e)
{
TextBox txtName = (TextBox)GridView1.Rows[(0)].FindControl("txtID");
string strConnString = ConfigurationManager.ConnectionStrings["####"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select u.[uID], u.[uForenames],
u.[uSurname], u.[uCompany], u.[uEmailAddress],
s.[sStartDate]
from [dbo].[UserDe]
where u.[uID] like '%" + txtName + "%'
order by s.[sStartDate] desc";
cmd.Connection = con;
con.Open();
GridView1.DataSource = cmd.ExecuteReader();
GridView1.DataBind();
con.Close();
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
}
나는 나의 스크립트를 디버깅 디버거 만 pageload 및 BindGrid 방법을 통해가는 것을 발견,하지만 "grdAdjAMT_TextChanged"방법을 통과하지 않습니다. 나는 또한 textChange 메서드를 별도로 디버깅하려고 시도했지만 여전히 아무 일도 일어나지 않습니다.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="uID" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" CellPadding="4" ForeColor="#333333" GridLines="None" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="ID" SortExpression="ID">
<HeaderTemplate>
<asp:Label ID="Label1" runat="server" Text="ID"></asp:Label><br />
<asp:TextBox ID="txtID" runat="server" OnTextChanged="grdAdjAMT_TextChanged" AutoPostBack="true"></asp:TextBox>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("uID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
추가 조언이 있으면 대단히 감사하겠습니다.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
을 다시 Page_Load
실행 OnTextChanged 이벤트 이전 게시물에 : 당신은 아마 할 필요가 grdAdjAMT_TextChanged()
으로 감사
'TextChanged' 이벤트는 [서버에 대한 게시물간에 텍스트가 바뀔 때] 발생합니다. (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox .textchanged % 28v = vs.110 % 29.aspx) - 클라이언트 측에서 텍스트가 변경 될 때이를 다시 게시 할 것으로 예상하십니까? – barrick
당신은'__doPostBack' 자바 스크립트 메소드에 익숙합니다. 이것은'Page_Load' 이벤트에서'if (IsPostBack) {}'체크를 추가해야 할 필요가있는 것처럼 들리지만'FYI'에서는'con.Close();를 호출 할 필요가 없습니다. ''() {}'안에 중첩되어 있기 때문에 – MethodMan
@ barrick 예, 그것이 내 목표입니다. 당신의 답변에 감사드립니다. – user3070072