2012-02-14 3 views
4

웹 페이지가 있습니다. 나는 테이블에서 기록을 보여 주며, 내 페이지에 학생들을 말하게한다. 나는 모든 학생들에게 질의를하고 그리드로 보여줍니다. DataGridview 결과를 필터링하기 위해 텍스트 상자를 사용하고 싶습니다. 예를 들어 사용자가 텍스트 상자에 a를 입력하면 그리드에는 이름에 "a"가있는 학생 만 표시됩니다. 텍스트 상자를 편집하는 동안 동시에 눈금을 새로 고칩니다.ASP .Net 텍스트 상자 Textchanged 이벤트

텍스트 상자의 autopostback 속성을 true로 설정하고 텍스트 상자의 textchanged 이벤트에서 눈금을 새로 고칩니다. 텍스트가 포커스를 잃은 후에 만 ​​textchanged 이벤트가 발생합니다. 사용자가 한 문자 만 입력하면 어떻게해야합니까? 감사.

+1

당신은 AJAX를 사용해야합니다. 모든 문자 유형 소방 포스트 이벤트 .. 좋지 않습니다. –

+1

모든 키를 누른 후에 포스트 백을 일으키시겠습니까? 업데이트 패널 내부의 모든 내용을 래핑 할지라도 사용자는 페이지가 새로 고쳐질 때까지 기다렸다가 다른 문자를 입력 할 수 있습니다. – rie819

+0

[여기]에 대한 비슷한 질문이 많이 있습니다 (http://stackoverflow.com/questions/1009086/how-to-make-an-asp-net-textbox-fire-its-ontextchanged-event-fire-in- an-ajax-upd) –

답변

4

onKeyDown 이벤트를 사용해야합니다. 그러나 ASP.NET AJAX 또는 jQuery를 사용하여 Ajax로 결과를로드하는 것이 좋습니다. 코드 프로젝트에서, http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

또 다른 하나 : 여기

는 asp.net에서 한 예입니다 http://www.codeproject.com/Articles/38803/Google-Like-Search-TextBox

+0

링크를 편집하여 편집했습니다. – Schiavini

+0

죄송 합니다만, 언급 한 컨트롤이 이미 updatepanel에 있습니다. 텍스트 상자에는 onKeyDown이 없습니다. 어떻게 구현할 수 있습니까? 감사합니다 –

+0

asp.net은 텍스트로 추가하기 만하면 인식하지 못하고 바로 – Schiavini

2

당신은 당신이 원하는 특정 방법이있는 경우, 일부 현재의 코드를 표시 할 수 있습니다 함께 가자. 그렇지 않으면 사람들이 당신에게 그들이 그것을 할 방법을 말하게하려고합니다.

지금이 모양이 맞습니까?

<asp:Textbox id="myTextbox" runat="server" onChange="txtChanged" AutoPostBack="true"/> 

public void txtChanged(object sender, EventArgs e) 
{ 
    //Get text from textbox 
    string text = ((TextBox)sender).Text; 

    //Do what ever it is you want to do to edit the text 
    text = text.ToUpper(); 

    //Update the other textbox with this text 
    txtMyText2.Text = text; 
} 
+0

예 거의 동일한 작업을 수행했습니다. 또한 필자는 텍스트 상자에 autocompleteextender를 사용했습니다. 감사. –

+0

이것은 아마도 문제 일 것입니다. [AutoCompleteExtender가 TextChanged 이벤트를 어떻게 억제 할 것인가에 대한 많은 게시물을 보았습니다.] (http : //forums.asp.net/t/1022600.aspx/1) –

+0

돈이 있다면 Telerik, 대개 최선의 방법이지만 값이 싸지는 않습니다. 설치가 항상 쉬운 것은 아니며, 어느 정도의 복잡성으로도 실패 할 수 있습니다. 그리고 거기서 당신이 사용할 수있는 좋은 컨트롤을 가지고 다른 무료 프로젝트가 있습니다. –

0

더 나은 사용자 환경을 위해 PicNet을 사용하여 서버 대신 클라이언트에서이 작업을 수행 할 수 있습니다. 여기서 찾을 수 있습니다 http://www.picnet.com.au/resources/tablefilter/demo.htm Gridview는 HTML 테이블로 렌더링되므로이 jQuery 플러그인을 자유롭게 사용할 수 있습니다.

행운을 빈다.

1

은 난 여기가 작업을 수행하는 방법에 대한 예입니다, 최고의 가장 깨끗한 방법은 라드 컨트롤을 사용하는 것입니다 생각 : http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?product=grid

+0

그래, 내가 이것을 위해 rad 컨트롤을 사용할 것 같아. 텔 레릭의 컨트롤이 더 깔끔해 보입니다. 그들은 데이터 바인딩 등 내가 js와 함께 할 어려울 것이라고 추측하기 때문에 그들은 더 많은 작업이 필요로 자바 스크립트 works 주위에 보였다. –

+0

Rad 컨트롤을 사용하면 매우 깔끔하고 쉽게 문서화됩니다. 도움이 필요하면 저에게 연락하십시오. –

0

당신이 서버에 요청을 보내 이벤트 TextChanged에만 불이. 텍스트 상자 안의 텍스트가 바뀔 때 이벤트를 시작하거나 함수를 만들려면 OnKeyDown 이벤트 (Schiavini와 함께 사용)를 사용하십시오.

관련 문제