2009-09-24 3 views
1

Я использую ASP.NET 2.0 и VB.NET (код C# также поможет мне)Настройка фокуса на другой Contol от нажатия кнопки

На верхней части моей странице у меня есть кнопка под названием btnViewRecords. Когда пользователь нажимает на кнопку, я хочу установить фокус на другую кнопку или надпись ниже на той же странице. Как это может быть сделано.

Этот код не работает для меня ..............

btnTheRecords.Focus() 

или

lblHeader.Focus() 

Спасибо заранее !!

Редактировать: Даже если мой код действительно работает, я не хочу перезагружать страницу каждый раз.

ответ

1

Вы можете использовать JavaScript для этого.

document.getElementById ("btnTheRecords").focus(); 

Устанавливая фокус, что вы имеете в виду. Вы хотите, чтобы этот элемент управления был просмотрен, если он идет по странице. Тогда есть лучшие способы сделать это.

Edit:

Вы можете разместить якорь тег рядом с кнопкой или тюка и установите

location.href = "#anchorId"; 

где anchorId является идентификатор тега привязки.

будет перемещать фокус на привязную метку.

+0

Я просто хочу переместить всю страницу вниз, чтобы пользователь мог видеть, где он может просматривать записи, не прокручивая сам. – Etienne

+0

Использование встроенной гиперссылки с использованием #tag - это самый простой способ достижения этого. Все, что вам нужно сделать, это сделать кнопку в гиперссылке – Sanket

0

Я не уверен, что именно проблемы вы имеете. Но в тех случаях, когда функция SetFocus() и такие просто не работают (и они часто не в VB по какой-то причине). Я часто использовал обходные пути, такие как клавиши быстрого доступа Keys & в сочетании с SendKeys(), чтобы получить фокус, где мне это нужно.

В зависимости от того, находятся ли кнопки, о которых вы говорите, в вашем коде ASP.NET или в коде VB.NET, это может быть жизнеспособным обходным путем для вас.

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"> 

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> 

И код За

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"; 
    } 
} 
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> 
Смежные вопросы