2010-12-22 5 views
0

net 웹 사이트에서 DataGrid 컨트롤 안에 텍스트 상자 컨트롤이 있습니다.작성 및 자바 스크립트 및 코드 모두에서 뒤에 asp.net textchange 이벤트 처리기를 실행하는 방법?

자바 스크립트에서 textchange 이벤트를 추가하고 싶습니다. DataGrid의 textboxes 내부에있는 값을 합산하고 그 바깥 쪽 표에 lable을 추가해야합니다.

나는 또한 코드 숨김에서 동일한뿐만 아니라 (*. CS)를하고 싶으면

그러나 브라우저가 자바 스크립트를 지원하지 않을 경우 코드 숨김에만 실행합니다. 그것은 언제 브라우저 지원 자바 스크립트 전용 클라이언트 사이드 자바 스크립트가 아닌 서버 측 코드를 실행해야합니다 의미

답변

0

EditItemTemplate로 텍스트 상자를 사용하고 있습니까? 그렇다면 EditItemTemplate의 텍스트 상자에서 OnTextChanged 이벤트 - Textbox1_OnTextChanged을 아래와 같이 추가하십시오.

<asp:DataGrid ID="Grid" runat="server"> 
     <Columns> 
      <asp:TemplateColumn> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" OnLoad="TextBox1_Load" OnTextChanged="Textbox1_OnTextChanged"></asp:TextBox> 
       </EditItemTemplate> 
      </asp:TemplateColumn> 
     </Columns> 
    </asp:DataGrid> 

그러면 서버 측의 값을 합계 할 수 있습니다.

또한 TextItemTemplate에 Load 이벤트 (Textbox1_OnLoad)를 추가하여 아래 텍스트 상자의 clientside 이벤트를 바인딩해야합니다.

protected void TextBox1_Load(object sender, EventArgs e) 
    { 
     TextBox newTb = sender as TextBox; 
     if (newTb != null) 
     { 
      newTb.Attributes.Add("onChange", "sumup(this)"); 
     } 
    } 

자바 스크립트에서는 sumup 이벤트를 처리하고이 개체를 사용하여 텍스트 상자의 값을 가져 와서 값을 추가 할 수 있습니다. javascript가 지원되면 합계가 계산되고 sumup 함수의 끝에서 false를 반환하여 포스트 백을 중지해야합니다.

자바 스크립트가 지원되지 않으면 메소드가 호출되지 않고 다시 게시가 자동으로 트리거됩니다.

희망이 있으면 도움이됩니다.

감사

Lakxman 쿠마 C