通过按钮单击将焦点设置到另一个控件

时间:2009-09-24 10:17:22

标签: c# asp.net javascript vb.net

我正在使用ASP.NET 2.0和VB.NET(C#代码也会帮助我)

在我的页面顶部,我有一个名为btnViewRecords的按钮。当用户点击按钮时,我想将焦点设置到另一个按钮或同一页面上的标签。如何才能做到这一点。

此代码对我不起作用..............

btnTheRecords.Focus()

lblHeader.Focus()

提前致谢!!

修改 即使我的代码确实有效,我也不想每次都重新加载页面。

6 个答案:

答案 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";
    }
}