VB のヘルプが必要です (C# や Javascript を使用しないでください。私はこれらの言語について無知です)。また、「既に回答がある可能性のある質問」をすべて確認しましたが、VB にあった質問は私の状況と一致しませんでした。または、AutoPostback を使用するか、textChanged イベントをコーディングするか、ontextchanged= をテキスト ボックス フィールドに追加することで解決されました --- これらはすべてコードに既に含まれています。
AutoPostBack を true に設定しているにもかかわらず、TextChanged イベントを発生させることができないようです。送信ボタンで作成した後でも起動しませんが、何を省略しましたか?
私が達成しようとしているのは、ユーザーが開始日を編集した場合に限り、終了日を開始日から 30 日後の日付に設定することです。それ以外の場合は、最初にそこに表示されていたものを [終了日] に表示します。データベースでは両方の日付を null にすることができ、両方とも日時として定義されています。
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 年 16 月 1 日編集: Protected Sub Action_StartDateTextBox_TextChanged にタイプミスがあり、ページを実行しましたが、それでも起動しません。これについてはまだ助けが必要です。
2013 年 1 月 17 日編集: 私の質問にはまだ回答がありません。私が受け取った回答により、さらに多くのエラーが発生しました。助けてください。