我需要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" />
<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日编辑:我的问题仍未得到答复,我收到的回复导致更多错误。请帮忙。
答案 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会让你的生活变得如此简单”这个问题....