ASP.NET文本框AutoPostBack未触发

时间:2012-09-25 17:52:13

标签: asp.net

搜索后我发现了一些建议,但没有一个能解决这个问题。

<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text=""></asp:TextBox>

在属性窗口中,TextBox(Suggested here)的EnableViewState = True。我在TextBox中键入一个新值,然后按Tab键。没有任何事情发生,断裂点是否(IsPostBack ...)中断。

代码背后:

protected void Page_Load(object sender, EventArgs e)
    {
        if(IsPostBack && uid.Text != "" && pw.Text == "")
        {
            Do stuff
        }
    }

更新:我尝试过的其他TextBox设置:

<asp:TextBox runat="server" ID="uid" Text="" AutoPostBack="True" OnTextChanged="UidTextChanged"></asp:TextBox>

protected void UidTextChanged(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(GetType(), "alert", "alert('it works');", true);
    }

 <asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" onblur="__doPostBack('','');" OnTextChanged="UidTextChanged"></asp:TextBox>

 <asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" onblur="__doPostBack('','');"></asp:TextBox>

每当AutoPostBack设置为true时,我在浏览器控制台中收到以下错误:

"Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function
__doPostBack
(anonymous function)"

当我设置onblur属性时,我会收到完全相同的错误,除了代替匿名函数,它表示onblur。

2 个答案:

答案 0 :(得分:2)

您可以为onblur添加一个javascript事件。 onblur='__doPostBack('','');'

这会导致文本框一旦被标记出来就会导致回发。

修改:应该是“不是”<asp:TextBox ID="TextBox1" runat="server" onblur="__doPostBack('','');" />只是尝试了它并且它有效。请尝试删除AutoPostBack="True"

编辑2:基于你的pastebin .... <asp:Button runat="server" UseSubmitBehavior="True" ID="submit" Text="Save" onclick="SubmitClick"/> 您不能拥有“提交”ID。将其更改为“btnSubmit”并且Javascript解决方案将起作用,我打赌Auopostback解决方案也将如此。 http://www.xpertdeveloper.com/2012/05/property-submit-of-object-is-not-a-function/将解释问题。

答案 1 :(得分:1)

您可以在textBox上添加OnTextChanged="TextBox1_TextChanged"

Nota:设置事件触发非常重要,不仅仅是AutoPostBack =“true”。

<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>

代码背后:

protected void TextBox1_TextChanged(object sender, System.EventArgs e) {  
    .....
}