2011-05-04 2 views
1
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Always" > 
<ContentTemplate> 
<asp:Timer ID="Timer1" runat="server" Interval="300" ontick="Timer1_Tick"></asp:Timer> 
</ContentTemplate> 
</asp:UpdatePanel> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" > 
<ContentTemplate> 
</ContentTemplate> 
</asp:UpdatePanel> 

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" /> 
</ContentTemplate> 
</asp:UpdatePanel> 


문제 TextBox1’s 커서는 정적 깜박이지 않고, 당신이 그것을 쓸 수 있다는 것입니다. 그것은 그것이 얼 었다고 인상을 준다. 커서가 깜박이지 않는 이유는 무엇입니까?UpdatePanel, 타이머 및 TexBox 문제

+0

초점을 전환하면 문제를 해결할 수 있습니다. JavaScript를'TextBox1.blur()'그리고'TextBox1.focus()'에 사용하려고 시도 했습니까? –

+0

나는 그것이 당신이 찾고있는 것인지 확실하지 않지만 답변으로 게시 할 것입니다. –

+0

시도해보십시오 - 이미 모든 코드가 필요합니다. ;-) –

답변

1

타이머 간격을 1000 밀리 초 정도로 설정해야합니다. 그것은 당신의 깜박 거리는 문제를 해결해야합니다.

0

포스트 백이 완료되면 텍스트 상자에서 포커스를 제거하는 JavaScript를 실행할 수 있습니다 (예 : 텍스트를 더 이상 받아들이지 않음). 그러면 텍스트 상자에 즉시 초점을 다시 맞출 수 있습니다 다시 텍스트). 커서가 제대로 표시되도록 "재설정"할 수 있습니다.

시도 바람직 UpdatePanels의 외부, 당신의 ASPX이 추가 :

<script type="text/javascript"> 
    function fixTextBoxFocus() 
    { 
     var textBox = document.getElementById("<%= TextBox1.ClientID %>"); 

     textBox.blur(); //Remove the focus from the text box. 
     textBox.focus();//Re-focus on the textbox. 
    } 
</script> 

와 다음, 당신의 코드 숨김 (페이지의 클래스의 이름으로 MyPage 대체) :

protected void Timer1_Tick(object sender, EventArgs e) 
{ 
    this.ClientScript.RegisterStartupScript(typeof(MyPage), "fixTextBoxFocus", "fixTextBoxFocus();", true); 
} 

이제 partial-post-back이 발생하면 매번이 스크립트가 실행됩니다. 시도해보고 문제를 해결하는 데 도움이되는지 알려주십시오.

+0

죄송합니다. 작동하지 않았습니다. 커서가 여전히 정적이어서 깜박이지 않습니다. 나는 그것이'Timer '때문인 것 같아요. – jams

0

업데이트 패널 내에 타이머를두면 해당 업데이트 패널이 반복적으로 새로 고쳐집니다. 타이머 간격을 300 밀리 초로 설정했습니다. 그것은 문제 일 수 있습니다. 당신이 생각해야 할 사항 - 정말 업데이트 패널에 타이머를 넣으시겠습니까? 간격을 300 밀리 초로 유지해야합니까? 업데이트 패널 외부에서 텍스트 상자를 이동할 수 없습니까?

+0

'TextBox'' UpdatePanel'이 아닌 다른'UpdatePanel'에'Timer'를 넣었습니다. 따라서 Timer의 새로 고침이 TextBox를 방해해서는 안됩니다. – jams