C# 在弹出窗口中设置文本框焦点
我有一个按钮,点击后会弹出一个模式窗口:C# 在弹出窗口中设置文本框焦点,c#,asp.net,textbox,C#,Asp.net,Textbox,我有一个按钮,点击后会弹出一个模式窗口: 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();
}
它工作正常,但我正在尝试将焦点添加到它的顶部文本框中:
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();
}
我试着在弹出之前和之后放置焦点调用,但都没有效果。我做错了什么?如何修复它?您可以从codebehind注册对javascript的调用以设置焦点。将此代码放在OnClick方法中:
ClientScript.RegisterStartupScript(this.GetType(), "focus",
"document.getElementById('" + this.addHoursInput.ClientID + "').focus();", true);
要在Windows窗体首次加载时聚焦文本框,只需将文本框的TabIndex设置为零(或窗体上任何控件的最低TabIndex)
显示表单时,它会自动聚焦索引最低的控件。请注意,如果您的文本框预先初始化为某些文本,则会选择整个文本
资料来源:
我还发现了一些东西:
textBox.Select();
textBox.Focus();
资料来源:
您可以使用下面的JavaScript代码,它确实需要一些调整以满足您的需要。
您可能需要在正文中加载一个onload并发送文本框的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>
检查=功能(发送器){
如果(发送方){
警惕(“检查”);
focus();
}
}
最后一件可能对您有帮助的事情:为什么不尝试在单击后使用javascript执行此操作?调用后加载页面时,焦点在哪里?也许您还有其他一些代码(服务器端或客户端)在调用后设置焦点。您的代码对我来说应该可以使用。谢谢,但我正在使用asp.net,并且Select不是有效的调用。@DavidTunnell我添加了一些(可能的)解决方案我得到了相同的结果,由于某种原因没有焦点=\n什么浏览器和版本?您是否尝试过在浏览器中查看dev工具中的控制台以查看它是否生成错误?