0

我正在尝试将焦点设置在 asp.net 中页面加载的文本框上,如下所示

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
               // fillUnitType();
                //
                fillLastCode();
                txt_Grn_Date.Text = System.DateTime.Now.ToString("dd-MM-yyyy");
                setinitialrow_lvl();
 txt_Po_No.Focus();

            }
        }
        catch (Exception ex)
        {

            lblMessage.Text = ex.Message;
        }
    }

但是文本框没有得到关注。我错过了什么。我用过更新面板是不是因为这个。?或者我的 css 有点问题。

4

4 回答 4

1

在javascript中试试这个

<script language=javascript>

function fnLoad(){
document.getElementById("<%= txt_Po_No.ClientID %>").focus();

}

</script>

对body的“”事件调用“ fnLoad()”函数onLoad..

您需要在 body 标签中添加此功能:喜欢

<body onload="fnLoad()">........</body>

更新:

尝试另一种方式

<script language=javascript>
    $(document).ready(function(){  document.getElementById("<%= txt_Po_No.ClientID %>").focus();}) 
  </script>

或者

<script language=javascript>
        $(window).load(function(){  document.getElementById("<%= txt_Po_No.ClientID %>").focus();}) 
      </script>
于 2013-08-22T04:29:44.943 回答
1

在您的代码隐藏中编写以下函数,并为每个控件调用此函数

private void Set_Focus(string controlname)
{
string strScript;

strScript = "<script language=javascript> document.all('" + controlname + "').focus() </script>";
RegisterStartupScript("focus", strScript);
}

tapindex = 0
TextBox1.Focus();

或者

 textBox1.Select();

或者

 protected override void OnShown(EventArgs e)
    {
        textBox1.Focus();
        base.OnShown(e);
    }

或者

setTimeout("myFocusFunction()", 500);

    function myFocusFunction(){
        $("#myTextBoxID").focus();
    }
于 2013-08-22T04:31:56.420 回答
1

我已经在其中使用更新面板和文本框进行了尝试。

代码隐藏

代码隐藏

.aspx

.aspx

输出

输出

于 2013-08-22T05:05:14.810 回答
0

试试这个代码..

string jsCode= "<script language=javascript>document.getElementById('<%= TEXTBOX.ClientID%>').focus();</script>";   


ClientScript.RegisterClientScriptBlock(GetType(), "txtbox",jsCode, false);
于 2013-08-22T05:47:32.467 回答