页面a.aspx上有个  <input id="txtName" name="txtName" type="button"/>我在页面的最底部,写:<script type="text/javascript">
document.getElementById("txtName").focus();
</script>
成功。在页面加载完时,控件可以获得焦点。我把前台的JS给注释了,然后在后台写:ClientScript.RegisterStartupScript(GetType(), "x", "document.getElementById('txtTitle').focus();", true);
失败。没有获得焦点。然后我右键源代码,发现根本就没有输出这个JS。PS:这个a.aspx是建的web内容页面,是在.master母版页下面的一个子页。有没有哪个大哥能告诉一下,我在这样的前提下,怎么在后台输出JS ?reponse.write 就算了。谢谢!~

解决方案 »

  1.   

    这是前台的。我把JS注释了。不注释的话,成功,可以获得焦点。<%@ Page Language="C#" MasterPageFile="~/Source/Main.Master" AutoEventWireup="true" CodeBehind="Message.aspx.cs" Inherits="JL_Common.Source.Message"%>
    <asp:Content ID="Content1" ContentPlaceHolderID="CPH_Head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="CPH_Content" runat="server">
    <input id="txtTitle" name="txtTitle" type="text" class="input01" /><%--<script type="text/javascript">
    document.getElementById("txtTitle").focus();
    </script>--%>
    </asp:Content>
    这是后台的:我把前台的JS注释之后,在后台这样写,但是失败,不能获得焦点。public partial class Message : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                ClientScript.RegisterStartupScript(GetType(), "x", "document.getElementById('txtTitle').focus();", true);
            }
        }
      

  2.   

    我知道原因了,你的页面中 没有<form> 标签
      

  3.   

    ClientScript.RegisterStartupScript 这个方法是在 </form> 前 “注册”脚本的
      

  4.   

    <input id="txtName" name="txtName" type="button" onload="this.focus()"/>
      

  5.   


    生成之后的源代码中,有form标签。不过我把runat=server给删掉了。非哥给个指示吧。。这样的情况下,怎么在后台输出JS呢?
      

  6.   

    你可以这样protected string RegisterScript;------------------------------------ ClientScript.RegisterStartupScript(GetType(), "x", "document.getElementById('txtTitle').focus();", true);
            
    =>RegisterScript="<script>document.getElementById('txtTitle').focus();</script>";
    -------------------------------------------------------------------------------<%=RegisterScript %><%=RegisterScript %> 的摆放位置 你应该知道吧
      

  7.   

    噢。。非哥意思我明白了。。这样啊明白。明白。除此之外有没有其他更好的办法?就像可以直接 ClientScript.RegisterStartupScript 一样。
      

  8.   

    ClientScript.RegisterStartupScript(GetType(), "x", "document.getElementById('txtTitle').focus();", true);
    你那里是 txtName   这里是 txtTitle
      

  9.   

    别的方法到是有,但是因为 你的 form 不是服务器端的,所以别的方案也不太适用 又或者同样很繁琐。
      

  10.   

    http://topic.csdn.net/u/20100707/11/eaa5425a-e9c5-4216-9adb-67a1f8f9408b.html?seed=364472900&r=66780365#r_66780365帮忙看下!