无法专注于C#中的Asp.net TextBox

时间:2015-04-21 20:36:50

标签: c# asp.net ajax

我有一个TextBox,我试图在回发后使用代码后面的焦点。此文本框使用带有Ajax DropDownExtender的ListBox来创建ComboBox。当我的页面执行PostBack时,我调用tbEquipType.Focus(),但该框不会成为焦点。我相信与Ajax控件有关的问题,但我不确定。任何见解?提前谢谢!

<asp:Panel ID="panelEquipType" runat="server" BorderWidth="0">
    <asp:ListBox ID="lbEquipType" runat="server" AppendDataBoundItems="true" />
</asp:Panel>
<asp:TextBox ID="tbEquipType" runat="server" CssClass="Small floatLeft" />
<ajx:DropDownExtender ID="ex1" runat="server" DynamicServicePath="" 
     DropDownControlID="panelEquipType" TargetControlID="tbEquipType" />

我的代码背后......

    if (IsPostBack)
    {
        tbEquipType.Focus();
    }

3 个答案:

答案 0 :(得分:0)

为什么您没有使用客户端脚本来设置焦点

$(function(){
    $('#<%= tbEquipType.ClientID %>').focus();
});

如果您使用的是更新面板

function pageLoad(){
    $('#<%= tbEquipType.ClientID %>').focus();
}

答案 1 :(得分:0)

启用AJAX时,asp.net焦点方法不起作用。而是使用JQuery轻松地将焦点设置在文本框上。

function document_ready() {
    $(".MyTextBoxStyle").focus();
}

或者像这样:

function document_ready() {
    $("<%= tbEquipType.ClientID %>").focus();
}

答案 2 :(得分:0)

我相信我明白了。我现在从(窗口).load函数调用focus()方法,它似乎像冠军一样工作。

$(window).load(function () {
        $("#<%=tbEquipType.ClientID%>").focus();
    });

感谢您的帮助!