1

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" />
&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 年 16 月 1 日編集: Protected Sub Action_StartDateTextBox_TextChanged にタイプミスがあり、ページを実行しましたが、それでも起動しません。これについてはまだ助けが必要です。

2013 年 1 月 17 日編集: 私の質問にはまだ回答がありません。私が受け取った回答により、さらに多くのエラーが発生しました。助けてください。

4

2 に答える 2

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

イベント ハンドラーに関する詳細が必要な場合は、こちらを参照してください。

于 2013-01-14T06:19:45.320 に答える
0

これについての反応はありませんが、私は動き続けなければなりません。したがって、おそらくよりスマートなルートを選択しました-クライアント側のJavaScriptとしてポストバックを処理することです。この問題については、「asp.netはこれを行うことができません.Javascriptはあなたの人生をとても楽にしてくれるでしょう」という答えを受け入れていただろう....

于 2013-01-23T00:35:49.907 に答える