我正在使用ASP.NET 2.0和VB.NET(C#代码也会帮助我)
在我的页面顶部,我有一个名为btnViewRecords的按钮。当用户点击按钮时,我想将焦点设置到另一个按钮或同一页面上的标签。如何才能做到这一点。
此代码对我不起作用..............
btnTheRecords.Focus()
或
lblHeader.Focus()
提前致谢!!
修改 即使我的代码确实有效,我也不想每次都重新加载页面。
答案 0 :(得分:2)
这是一个相对简单的解决方案......
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick="return SetFocus()" />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<script type="text/javascript">
function SetFocus() {
document.getElementById('<%=TextBox2.ClientID %>').focus();
//or this if you're using jQuery
//$("#<%=TextBox2.ClientID %>").focus();
return false;
}
</script>
答案 1 :(得分:1)
您可以使用JavaScript执行此操作。
document.getElementById ( "btnTheRecords" ).focus();
设置焦点是什么意思。如果它位于页面下方,是否要将此控件置于视图中?然后有更好的方法来做到这一点。
<强> 编辑: 强>
您可以在按钮或草捆附近放置锚标记并设置
location.href = "#anchorId";
其中anchorId是锚标记的id。
会将焦点移动到锚标记。
答案 2 :(得分:0)
document.getElementById("spanId").scrollIntoView(false)
参考: .scrollIntoView
答案 3 :(得分:0)
我不确定你遇到的问题到底是什么。但是在SetFocus()函数等不起作用的情况下(由于某些原因它们通常不在VB中)。我经常使用快捷方式键和解决方案等解决方法。助记符与SendKeys()结合使用,以获得我需要的焦点。
根据您所谈论的按钮是在ASP.NET代码中还是在VB.NET代码中,这对您来说可能是一种可行的解决方法。
答案 4 :(得分:0)
If the button is server side, set the "OnClientClick" action on it to a javascript function. Cancel windows events so the page location does not change. function goto(){ window.event.cancelBubble = true; window.event.returnValue = false; document.getElementById("pageloction").focus() } asp:Button runat="server" ID="btnTheRecords" OnClientClick="javascript:goto()" /> span id="pageloction">
答案 5 :(得分:0)
试试这个,
我写了一个小代码,它似乎对我有用。对不起,这是在C#中,但是如果你点击一个按钮并将焦点设置在另一个按钮上,那么页面将自动向下滚动。
ASP.NET
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div style="height:50px;"></div>
<div>
<asp:Button ID="Button1" runat="server" Text="Button 1" onclick="Button1_Click" />
</div>
<div style="height:1000px;"></div>
<div>
<asp:Button ID="Button2" runat="server" Text="Button 2" onclick="Button2_Click" />
</div>
</form>
</body>
</html>
AND Code Behind
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Button2.Focus();
Label1.Text = "button1 clicked & button2 in focus";
}
protected void Button2_Click(object sender, EventArgs e)
{
Button1.Focus();
Label1.Text = "button2 clicked & button1 in Focus";
}
}