我有一个按钮,当点击时会产生一个模态弹出窗口:
protected void addHoursButton_OnClick(object sender, EventArgs e)
{
Button btn = sender as Button;
var addHoursPopup = btn.FindControl("addHoursPopup") as ModalPopupExtender;
addHoursPopup.Show();
}
它工作正常,但我正在尝试将焦点添加到其中的顶部文本框中:
protected void addHoursButton_OnClick(object sender, EventArgs e)
{
Button btn = sender as Button;
var addHoursPopup = btn.FindControl("addHoursPopup") as ModalPopupExtender;
addHoursPopup.Show();
var addHoursInput = btn.FindControl("addHoursInput") as TextBox;
addHoursInput.Focus();
}
我尝试在弹出窗口之前和之后放置焦点调用无效。我做错了什么,如何解决?
答案 0 :(得分:2)
要在Windows窗体首次加载时聚焦TextBox,只需将TextBox的TabIndex设置为零(或窗体上任何Control的最低TabIndex)。
显示表单时,它会自动使用最低TabIndex聚焦Control。请注意,如果使用某些文本预先初始化TextBox,则将选择整个文本。
来源:http://www.csharp411.com/c-focus-textbox-on-form-load/
我找到的其他东西:
textBox.Select();
textBox.Focus();
来源:https://stackoverflow.com/questions/12686836/focus-on-textbox-does-not-work
您可以使用下面的JavaScript代码,它需要进行一些调整以满足您的需求 您可能需要在正文中加载并发送文本框的ID
<script type="text/javascript">
check = function (sender) {
if (sender) {
alert("check");
sender.focus();
}
}
</script>
<asp:TextBox ID="txtTest" runat="server" onblur="check(this);"></asp:TextBox>
但更令我感兴趣的是对解决方案的评论:
同时我找到了一个解决方法,将焦点放在其他控件上,然后将焦点放在当前控件上。例如$(input).focus(); sender.focus();
它对我有用
来源:https://stackoverflow.com/questions/9910968/set-focus-on-textbox-using-javascript
可能对您有帮助的最后一件事:http://www.beansoftware.com/ASP.NET-Tutorials/Focus-ASP.NET.aspx
答案 1 :(得分:1)
您可以从代码隐藏中注册对javascript的调用以设置焦点。将此代码放在OnClick方法中:
ClientScript.RegisterStartupScript(this.GetType(), "focus",
"document.getElementById('" + this.addHoursInput.ClientID + "').focus();", true);