我声明了一个文本框事件,但它没有触发。我已经在SO中看到了其他答案但是所有人都说autopostback属性是真的,我有它
我的aspx
<asp:ScriptManager ID="ScriptManager2" runat="server" />
<asp:TextBox runat="server" ID="txtDia" Width="120px" Height="20px"
AutoPostBack="True" CssClass="textbox" OnTextChanged="txtDia_TextChanged"/>
<Juice:Datepicker ID="Datepicker2" runat="server" TargetControlID="txtDia"
DateFormat="dd/mm/yy"
MonthNames="Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre"
MonthNamesShort="Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic,"
AutoPostBack="True" /></td>
和我的aspx.vb
Protected Sub txtDia_TextChanged(sender As Object, e As System.EventArgs) Handles txtDia.TextChanged
CargarDatos()
End Sub
答案 0 :(得分:3)
您应该像这样定义文本框(请参阅OnTextChanged="txtDia_TextChanged"
正在添加):
<asp:TextBox OnTextChanged="txtDia_TextChanged"
runat="server" ID="txtDia" Width="120px" Height="20px"
AutoPostBack="True" CssClass="textbox"/>
请记住,此事件只会在onblur(焦点从该文本框中移除)上升。
答案 1 :(得分:2)
在你的aspx中你应该写
<asp:TextBox runat="server" ID="txtDia" Width="120px" Height="20px"
AutoPostBack="True" CssClass="textbox" OnTextChanged="txtDia_TextChanged"/>
答案 2 :(得分:1)
如果覆盖codebehind中的文本,则不会触发事件。例如,如果您将控件数据绑定到TextBox
所在的位置。
您应该只有If Not IsPostBack
:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostback)
{
DataBindAllControls(); // including your textbox
}
}
编辑:对不起,这里是VB.NET:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
DataBindAllControls() ' including your textbox
Else
End Sub
答案 3 :(得分:1)
法格尔所说的是正确的。
我在验证日期和使用jquery datepicker时遇到了同样的问题。在填充框之后,我使用下面的方法来激活验证例程。所以从技术上讲,他们一次性发射两次,一次是在文本框失去焦点到日期选择器之后,然后再次在我的代码在datepicker填充文本框之后触发。最好是禁用onblur事件并直接从下面调用,但在我的项目中是不可能的。
$('.datePicker').each(function () {
$(this).datepicker({
onSelect: function () {
$(this).trigger('blur');
}
});
});
您可以通过禁用自动回发并通过onSelect事件手动触发来使用此变体。
答案 4 :(得分:0)
您需要指定在触发事件时要调用的方法,如下所示:
<asp:TextBox runat="server" ID="txtDia" Width="120px" Height="20px" OnTextChanged="txtDia_TextChanged" AutoPostBack="True" CssClass="textbox"/>
注意:
OnTextChanged="txtDia_TextChanged"