formview文本框控件textchanged事件不会触发

时间:2013-01-14 04:44:49

标签: asp.net vb.net autopostback

我需要VB中的帮助(没有C#或Javascript,请 - 我对这些语言一无所知) 我还检查了所有可能已经有你答案的问题 - 那些在VB中的问题与我的情况不符,或者通过使用AutoPostback,编码textChanged事件或将ontextchanged =添加到文本框字段来解决 - - 我的代码中已经包含了所有这些内容。

尽管将AutoPostBack设置为true,我似乎无法触发TextChanged事件。 即使在提交按钮后创建它仍然不会触发,我遗漏了什么?

我想要完成的事情: 我希望完成日期设置为开始日期后30天的日期,当且仅当用户编辑开始日期时。 否则只需在完成日期显示最初显示的内容。 两个日期在数据库中都允许为空,并且都被定义为日期时间。

在Default.aspx中

<asp:FormView ID="FormView1" runat="server" DataKeyNames="MASTERID_Action" 
DataSourceID="srcAction">
<EditItemTemplate>
MASTERID_Action:
<asp:Label ID="MASTERID_ActionLabel1" runat="server" 
Text='<%# Eval("MASTERID_Action") %>' />
<br />
Action_StartDate:
<asp:TextBox ID="Action_StartDateTextBox" runat="server" 
Text='<%# Bind("Action_StartDate") %>' 
ontextchanged="Action_StartDateTextBox_TextChanged" AutoPostBack="True" />         <rjs:PopCalendar ID="StartDateCal" runat="server" Control="Action_STartDateTextBox" />
<br />
Action_FinishDate:
<asp:TextBox ID="Action_FinishDateTextBox" runat="server" 
Text='<%# Eval("Action_FinishDate") %>' />
<br />
<asp:Button ID="SubmitButton1" runat="server" Text="Refresh" 
onclick="SubmitButton1_Click" />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
CommandName="Update" Text="Update" />
&nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>

在Default.aspx.vb

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Action_StartDateTextBox_TextChanged(sender As Object, e As System.EventArgs)
Dim txtStartDate As TextBox = Me.FormView1.FindControl("Action_StartDateTextBox")
Dim txtFinishDate As TextBox = Me.FormView1.FindControl("Action_finishdatetextbox")
Dim strNewFinishDate As String

If txtFinishDate.Text = "" And txtStartDate.Text <> "" Then
strNewFinishDate = Convert.ToString(Convert.ToDateTime(txtStartDate).AddDays(30))
ElseIf txtFinishDate.Text <> "" Then
strNewFinishDate = txtFinishDate.Text
Else
strNewFinishDate = ""
End If

txtFinishDate.Text = strNewFinishDate

End Sub


Protected Sub SubmitButton1_Click(sender As Object, e As System.EventArgs)
Dim mytest As String
End Sub
End Class

2013年1月16日编辑:在Protected Sub中有一个拼写错误Action_StartDateTextBox_TextChanged运行了该页面,但它仍然没有触发。还是需要帮助。

2013年1月17日编辑:我的问题仍未得到答复,我收到的回复导致更多错误。请帮忙。

2 个答案:

答案 0 :(得分:0)

我认为在编写相应的事件后,您可能已经删除了控件。如果是这样,那么它将删除您使用事件指定的所有处理程序。

'---This is your code, by the way it seems to be missing its handler
... Action_StartDateTextBox_TextChanged(sender As Object, e As System.EventArgs)

尝试添加像这样的处理程序,

'---Adding hanler
... Action_StartDateTextBox_TextChanged(sender As Object, e As System.EventArgs) Handles Action_StartDateTextBox.TextChanged

如果您需要有关事件处理程序的更多详细信息,请参阅this.

答案 1 :(得分:0)

对此没有回应,但我必须继续前进。所以,我选择了可​​能更聪明的路线 - 将我的回发作为客户端javascript来处理。我会接受一个答案“asp.net不能这样做.Javascript会让你的生活变得如此简单”这个问题....