Textbox1.Focus();不起作用;不像Page.SetFocus(Textbox1);为什么?

时间:2010-05-16 12:54:44

标签: c# asp.net focus setfocus

如上所述这两个都不起作用(来自Page_Load):

Textbox1.Focus();

Page.SetFocus(Textbox1);

任何想法为什么?

这是控件本身:

<asp:TextBox ID="Textbox1" ClientIDMode="Static" CssClass="Textbox1"
                runat="server" MaxLength="80"></asp:TextBox>

它位于页面上,两个母版页深。表单标签位于第二个母版页上,这就是为什么没有在那里设置焦点的原因。

没有工作:即firefox,chrome和safari(所有最新版本)。

帮助! 日Thnx

编辑:需要更多信息吗?我会做/发布任何事情只是告诉我该怎么做才能帮助你,我尝试了一切。甚至谷歌都没有结果,并且正在显示我的这个问题。

4 个答案:

答案 0 :(得分:2)

好的,这就是ACTUAL问题。

<asp:Content ID="PlaceHolder1" ContentPlaceHolderID="PlaceHolder1"
    runat="server">

我不知道那些ID(ID =“PlaceHolder1”)是如何到达的,但它们似乎是问题所在。

我想通过从头开始重新制作项目,看看焦点方法是否在那里工作,然后(除此之外,所以我可以在这里发布)我发现了这个差异。

这有效:

<asp:Content ContentPlaceHolderID="PlaceHolder1" runat="server">

希望这有时可以帮助别人......

答案 1 :(得分:1)

你试过这个吗?

<form id="Form1" defaultfocus="Textbox1" runat="server"> 

或者,因为您在MasterPage中提到了一个页面,因此它将位于ContentPlaceholder中:

    ContentPlaceHolder cp = (ContentPlaceHolder) Master.FindControl("ContentPlaceHolder1");
    cp.FindControl("Textbox1").Focus();

确保在aspx中引用您的Master:

<%@ MasterType VirtualPath="~/MyMaster.master" %>

答案 2 :(得分:0)

你可以在客户端事件window.onload = .....

中编写js代码控制文本框

答案 3 :(得分:0)

如果您的页面使用母版页,则应首先找到文本框,然后设置文本框焦点。你还应该注意页面和主人的事件序列