3

フォーム ビューを更新する前に if を実行したい。はいの場合...「メッセージ」 & 更新クエリを続行しない場合は更新クエリをキャンセルします。

私はこれを試しましたが、ifの最初の行に「オブジェクトインスタンスがnullインスタンスに設定されていません......」というメッセージが表示されますか? アイテムは関係なく更新されます

Private Sub FormView2_ItemUpdating(sender As Object, e As System.Web.UI.WebControls.FormViewUpdateEventArgs) Handles FormView2.ItemUpdating
    Dim status As TextBox = FormView1.FindControl("ApprovalStatusTextBox")


    If status.Text = "approved" Or "denied" Then
        e.Cancel = True
        lblupdaterequest.Text = "you cannot update this request as it has already been responded to"
    Else
        HolidayDetailsdatasource.Update()
    End If

このようなことを達成することのより良いことを知っている人はいますか?

正確なエラー:

   System.NullReferenceException was unhandled by user code
   Message=Object reference not set to an instance of an object.
   Source=WebApplication1
   StackTrace:
   at WebApplication1.HolidayApprovalDetails.DetailsView1_ItemUpdating(Object sender, DetailsViewUpdateEventArgs e) in line 32
   at System.Web.UI.WebControls.DetailsView.OnItemUpdating(DetailsViewUpdateEventArgs e)
   at System.Web.UI.WebControls.DetailsView.HandleUpdate(String commandArg, Boolean causesValidation)
   at System.Web.UI.WebControls.DetailsView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup)
   at System.Web.UI.WebControls.DetailsView.OnBubbleEvent(Object source, EventArgs e)
   at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
   at System.Web.UI.WebControls.DetailsViewRow.OnBubbleEvent(Object source, EventArgs e)
   at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
   at System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
   at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
4

2 に答える 2

2

サブ ItemUpdating が「 FormView2 」を参照している間、少なくとも「 FormView1 」からステータスTextBox の値を取得していることがわかります。

これを変更したら、if の前にメッセージ ボックスを追加して、必要な値が正しいことを確認してください。

MsgBox(status.Text)

うまくいけば、それはあなたの問題を解決するのに役立ちます.

于 2012-04-04T07:14:33.413 に答える
1
If status IsNot Nothing AndAlso (status.Text = "approved" OrElse status.Text = "denied") Then
于 2012-04-03T21:24:01.863 に答える