搜索后我发现了一些建议,但没有一个能解决这个问题。
<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。
答案 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) {
.....
}