我有一个母版页和一个用户控件
我在usercontrol中编写了一个事件,我想在我的母版页中调用该事件。
以下是我的代码
主页-----------(我认为这一部分是正确的,它做了什么是必须做的;调用用户控制功能。)
Dim App_Cl_tpPerson As New App_Cl_tpPerson
App_Cl_tpPerson.PersonAdd_Click(sender, e)
用户控制页面----------(我觉得问题在这里)
Public Sub PersonAdd_Click(ByVal sender As Object, ByVal e As EventArgs)
Try
If Req_No = 0 Then
Req_No = Convert.ToInt32(Request.QueryString("reqID"))
End If
Catch ex As Exception
End Try
End Sub
错误消息是"对象参考未设置为对象的实例"
答案 0 :(得分:0)
如果您在母版页中创建了一个控件,则还需要在其中放置一个事件处理程序。您收到错误的原因是因为母版页的控件正在母版页的类中查找事件处理程序,并且没有定义。
由于您所做的只是获取主页有权访问的QueryString值,您只需将方法从派生页面移动到母版页即可完成您想要的任务。
然后,由于您需要可以访问模板化页面的Req_No值,因此必须向母版页添加公共属性或方法,以允许模板化页面访问该值。
最后,要在模板化页面中使用属性/方法调用,请执行以下操作:
Public Sub DoSomething()
Dim Req_No As Integer = CType(Me.Master, MyMasterClassName).Req_NoProperty
End Sub
(注意,我不经常使用VB,所以我不确定CType调用是否可行,但一般的想法是你需要将Page类对Master Page的引用转换为你的特定Master Page的类,因为那是您编写的属性或方法所在的位置。)