自定义控件中的控件调用引用控件的页面里的函数

Imports System.ComponentModel

Imports System.Web.UI

Namespace WebControls

  1<defaultproperty("text"), customtoolbar="" runat="server" toolboxdata("<{0}:=""><!--{0}:CustomToolBar-->")&gt; Public  Class  CustomToolBar 
  2
  3Inherits  System.Web.UI.WebControls.WebControl 
  4
  5'定义3按钮 
  6
  7Public  WithEvents  btnAdd  As  System.Web.UI.WebControls.Button 
  8
  9Public  WithEvents  btnDelete  As  System.Web.UI.WebControls.Button 
 10
 11Public  WithEvents  btnEdit  As  System.Web.UI.WebControls.Button 
 12
 13Private  Sub  Button_Ini(  ByRef  objButton  As  Button,  ByVal  Text  As  String  ) 
 14
 15objButton =  New  System.Web.UI.WebControls.Button 
 16
 17objButton.Text = Text 
 18
 19Me  .Controls.Add(objButton) 
 20
 21End  Sub 
 22
 23Public  Sub  New  () 
 24
 25Button_Ini(btnAddNew, "新增") 
 26
 27Button_Ini(btnDeleteData, "删除") 
 28
 29End  Sub 
 30
 31End  Class 
 32
 33End  Namespace 
 34
 35///////////////////////////////////// 
 36
 37为了简明,没在控件里加什么事件、方法、属性之类的。把它编译成  dll 
 38
 39调用方法: 
 40
 41新建一页面  test.aspx,把控件添加进去。控件Id为CustomToolBar。在test.aspx.vb里的  Page_Init过程里添加: 
 42
 43Public  Class  frmFabricItem 
 44
 45Inherits  System.Web.UI.Page 
 46
 47Protected  DbaControls  As  AMMS.DbaControls 
 48
 49#  Region  " Web 窗体设计器生成的代码 " 
 50
 51'该调用是 Web 窗体设计器所必需的。 
 52
 53<system.diagnostics.debuggerstepthrough()> Private  Sub  InitializeComponent() 
 54
 55End  Sub 
 56
 57Private  Sub  Page_Init(  ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)  Handles  MyBase  .Init 
 58
 59'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 
 60
 61'不要使用代码编辑器修改它。 
 62
 63InitializeComponent() 
 64
 65AddHandler  CustomToolBar. btnAdd.Click,  AddressOf  Me  .btnAdd_Click 
 66
 67AddHandler  CustomToolBar. btnDelete.Click,  AddressOf  Me  .btnDelete_Click 
 68
 69AddHandler  CustomToolBar  .  btnEdit  .  Click  , AddressOf Me.  btnEdit_Click 
 70
 71End  Sub 
 72
 73#  End  Region 
 74
 75Private  Sub  Page_Load(  ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)  Handles  MyBase  .Load 
 76
 77'在此处放置初始化页的用户代码 
 78
 79End  Sub 
 80
 81'定义btnAdd_Click过程 
 82
 83Private  Sub  btnAdd_Click(  ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs) 
 84
 85……  .. 
 86
 87End  Sub 
 88
 89'定义btnDelete_Click过程 
 90
 91Private  Sub  btnDelete_Click(  ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs) 
 92
 93……  .. 
 94
 95End  Sub 
 96
 97'定义btnAdd _Click过程 
 98
 99Private  Sub  btnEdit_Click(  ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs) 
100
101……  .. 
102
103End  Sub 
104
105End  Class 
106
107///////////////////////////////// 
108
109其中关键是:  AddHandler  语句。  还有要放在  Page_Init过程里。 
110
111附: 
112
113AddHandler  语句 
114
115请参见 
116
117_ RemoveHandler  语句  _ |  _ Handles  _ |  事件和事件处理程序  | AddHandler  和  RemoveHandler 
118
119将事件与事件处理程序相关联。 
120
121** AddHandler  ** __ event  _ _ , **AddressOf** __ eventhandler  _ _
122
123各部分说明 
124
125_ event  _
126
127要处理的事件的名称。 
128
129_ eventhandler  _
130
131将处理事件的过程的名称。 
132
133备注 
134
135** AddHandler  ** 和  ** RemoveHandler  ** 语句使您可以在程序执行过程中的任何时候启动和停止事件处理。</system.diagnostics.debuggerstepthrough()></defaultproperty("text"),>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus