Asp.net 将焦点设置为UpdatePanel中的文本框
我在UpdatePanel中有四个文本框,所有这些文本框的AutoPostBack都设置为True。当用户输入一个值并按Enter键时,我希望光标自动移动到下一个文本框。当UpdatePanel中没有控件时,标准的textbox.focus方法可以正常工作 我发现了一些导致我创建此的代码:Asp.net 将焦点设置为UpdatePanel中的文本框,asp.net,focus,updatepanel,Asp.net,Focus,Updatepanel,我在UpdatePanel中有四个文本框,所有这些文本框的AutoPostBack都设置为True。当用户输入一个值并按Enter键时,我希望光标自动移动到下一个文本框。当UpdatePanel中没有控件时,标准的textbox.focus方法可以正常工作 我发现了一些导致我创建此的代码: Protected Sub txtField_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtField1.T
Protected Sub txtField_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtField1.TextChanged,
txtField2.TextChanged, txtField3.TextChanged
'Based on the textbox where data was changed, move the cursor to the next field.
Try
Dim sm As ScriptManager = ScriptManager.GetCurrent(Me)
'As multiple textboxes fire this same event, determine which textbox triggered this.
Dim MyTextbox As TextBox = TryCast(sender, TextBox)
Select Case MyTextbox.ID.ToString
Case "txtField1"
sm.SetFocus(txtField2)
Case "txtField2"
sm.SetFocus(txtField3)
Case "txtField3"
sm.SetFocus(txtField4)
End Select
Catch ex As Exception
lblError.Text = "Error in [txtField_TextChanged]: " & ex.Message
End Try
End Sub
真正奇怪的是,无论我在哪个领域首先尝试,它都能工作一次。之后,事件被触发,但焦点不变。以后的电话我还有什么需要补充的吗
如果有任何建议,我将不胜感激。谢谢大家! 尝试将
ScriptManager
的EnablePartialRendering
属性设置为false
,如下所示:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="false"></asp:ScriptManager>
我希望这有帮助!祝你好运,祝你快乐:)