ASP.NET表单视图(如果正在更新)
我想在更新表单视图之前运行if; 如果是,则…“消息”&取消更新查询 如果没有,请继续更新查询 我已经试过了,但是在if的第一行得到了一个“object instance not set to null instance…”?不管怎样,项目都会更新ASP.NET表单视图(如果正在更新),asp.net,vb.net,Asp.net,Vb.net,我想在更新表单视图之前运行if; 如果是,则…“消息”&取消更新查询 如果没有,请继续更新查询 我已经试过了,但是在if的第一行得到了一个“object instance not set to null instance…”?不管怎样,项目都会更新 Private Sub FormView2_ItemUpdating(sender As Object, e As System.Web.UI.WebControls.FormViewUpdateEventArgs) Handles FormView
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)
我至少可以看到您正在从“FormView1”检索状态文本框的值,而您的子项更新是指“FormView2” 更改此选项后,请尝试在if之前添加一个消息框,以确保获得所需的正确值:
MsgBox(status.Text)
希望它能帮助您解决问题。您能发布真实、清晰的错误消息吗?也许是复制粘贴?听起来您的状态文本框不存在或为空?你能调试吗?这个文本框在哪里,我的意思是在哪个模板中(f.e.?
FormView
有三种不同的格式。除此之外,我建议使用此文本框的标题为只读?然后我建议使用。你确定你拼写的ApprovalStatusTextBox
正确吗?你能显示你的FormView的相关部分吗?它不再崩溃。但不管是什么格式,它仍然会更新“状态”我是不是遗漏了什么?
MsgBox(status.Text)