我有一个ASP.Net webform,它有几个文本框。某些文本框具有OnTextChanged事件,AutoPostBack设置为true。
当用户输入一些文本并离开文本框时,我想要运行一些代码。这部分工作正常。
问题在于,如果用户输入了一些文本,然后单击或标签到另一个文本框,则当前文本框事件的OnTextChanged会正常触发,但用户单击的文本框不会保持焦点。这会导致问题,因为用户认为他们在下一个文本框中,但他们不是。没有任何对象似乎有焦点。
当当前文本框的OnTextChanged事件触发时,是否有任何可以使下一个对象保持焦点的事情?
答案 0 :(得分:4)
由于整个页面是在服务器端的回发上重新创建的,并且浏览器将在客户端重新创建所有html,因此您必须告诉ASP.NET您的TextBox
需要关注。
Page.SetFocus(IdOfControl);
但是,如果可以,我宁愿不回复。您输入所有必要数据后,是否无法使用用户必须单击的按钮?
答案 1 :(得分:4)
一种选择是使用<asp:UpdatePanel>
控件。
关于使用它的事实:
UpdateMode
和ChildrenAsTriggers
属性来避免更新。以下是一个例子:
<asp:UpdatePanel ID="uppTextboxes" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:TextBox ID="txb1" runat="server" AutoPostBack="true" OnTextChanged="txb1_OnTextChanged" />
<asp:TextBox ID="txb2" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>