2

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

Textbox1.Focus();

或者

Page.SetFocus(Textbox1);

知道为什么吗?

这是控件本身:

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

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

不适用于:即 firefox、chrome 和 safari(所有最新版本)。

帮助!谢谢

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

4

4 回答 4

3

好的,这就是实际的问题。

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

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

我通过从头开始重新制作项目并查看焦点方法是否在那里工作来解决这个问题,然后(除其他事项外,我可以在这里发布)我发现了这种差异。

这有效:

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

希望这对某人有所帮助,有时...

于 2010-05-17T17:41:02.013 回答
2

你试过这个吗?

<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" %>
于 2010-05-16T21:01:09.417 回答
0

可以在客户端事件window.onload=.....中编写js代码控制文本框

于 2010-05-17T00:03:10.933 回答
0

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

于 2010-05-17T00:06:24.930 回答