用户控件的点击问题,急!!!

SprinBell 2005-02-23 02:33:30
一个用户控件,包括2个button,如何在调用它的页面写点击事件?
用户控件:
mybutton.ascx

<%@ Control Language="vb" AutoEventWireup="false" Codebehind="MyButton.ascx.vb" Inherits="GrandUnited.MyButton" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<TABLE align="center" cellpadding="0" cellspacing="0" border="0">
<TR align="center">
<TD width="70"><ASP:BUTTON runat="server" id="ButtonOK" height="25" width="60"></ASP:BUTTON></TD>
<TD width="20"></TD>
<TD width="70"><ASP:BUTTON runat="server" id="ButtonNO" height="25" width="60"></ASP:BUTTON></TD>
</TR>
</TABLE>

mybutton.ascx.vb

Public Class MyButton
Inherits System.Web.UI.UserControl

#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents ButtonOK As System.Web.UI.WebControls.Button
Protected WithEvents ButtonNO As System.Web.UI.WebControls.Button

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
End Sub

Public Property OK_Name() As String
Get
Return ButtonOK.Text
End Get
Set(ByVal Value As String)
ButtonOK.Text = Value
End Set
End Property
...全文
136 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhuali2888 2005-02-24
  • 打赏
  • 举报
回复
哇,学习中啊!
都是高手!
SprinBell 2005-02-24
  • 打赏
  • 举报
回复
非常感谢!

揭帖!
beijingbeerman 2005-02-24
  • 打赏
  • 举报
回复
可以用冒泡事件
在用户控件中添加:
public event addressChanged(byval sender as objcet,byval s as eventargs)

public sub button1_click(byval sender as objcet,byval s as eventargs) handles button1.click
raisEvent addressChanged(sender,e)
end sub


在调用他的页面中添加:
private sub addressChanged(byval sender as objcet,byval s as eventargs) handles 用户控件名.AddressChanged
写上你要处理的代码
end sub


http://community.csdn.net/Expert/topic/3792/3792236.xml?temp=.6399042
SprinBell 2005-02-24
  • 打赏
  • 举报
回复
有vb的吗?我实在太。。。菜,都不好意思写了
SprinBell 2005-02-23
  • 打赏
  • 举报
回复
up
mazekui 2005-02-23
  • 打赏
  • 举报
回复
要想用其中的事件,一般都是写成自定义控件。

用户控件也可以,不过的手动写。

步骤:
一、在用户控件里定义事件
首先
public event EventHandler Button2Click;
然后在用户控件Button2的Click事件里写入:
private void Button2_Click(object sender, System.EventArgs e)
{
this.Button2Click(this,EventArgs.Empty);
}
二、在引用页面里调用事件
编辑对应的cs代码文件:

首先声明你引用的用户控件
protected Second Second1;(这里是我的,你的应该是protected MyButton MyButton1);
下来加入绑定事件的方法:

private void InitializeComponent()
{
加入这句this.Second1.Button2Click += new System.EventHandler(this.Button2Click);
}
再添加对应的函数:
private void Button2Click(object sender, System.EventArgs e)
{
这里可以写你的代码。。。。
//this.Label1.Text = "已经触发了!";
}

SprinBell 2005-02-23
  • 打赏
  • 举报
回复
up
SprinBell 2005-02-23
  • 打赏
  • 举报
回复
楼上的楼上:
具体该如何写?请指点一下,我刚学
yizhixiaozhu 2005-02-23
  • 打赏
  • 举报
回复
up
venus0314 2005-02-23
  • 打赏
  • 举报
回复
在控件中定义Public的事件(可以重载Button的click事件为自定义click事件),在调用页面直接调用该事件就好了
SprinBell 2005-02-23
  • 打赏
  • 举报
回复
调用它的页面:
<%@ Register TagPrefix="uc1" TagName="MyButton" Src="../MyOCX/MyButton.ascx" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="GrandUnited.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>WebForm1</TITLE>
<META content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<META content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<META content="JavaScript" name="vs_defaultClientScript">
<META content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<BODY ms_positioning="GridLayout">
<FORM id="Form1" method="post" runat="server">
<ASP:LABEL id="Label1" style="Z-INDEX: 101; LEFT: 104px; POSITION: absolute; TOP: 184px" runat="server"
width="240px">Label</ASP:LABEL><UC1:MYBUTTON id="MyButton1" runat="server" ok_name="lkl" NO_NAME="HIHJ"></UC1:MYBUTTON><ASP:LABEL id="Label2" style="Z-INDEX: 102; LEFT: 256px; POSITION: absolute; TOP: 312px" runat="server"
width="216px">Label</ASP:LABEL></FORM>
</BODY>
</HTML>

后台:
Public Class WebForm1
Inherits System.Web.UI.Page

#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Protected WithEvents MyButton1 As GrandUnited.MyButton

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Label1.Text = "hello"
Label2.Text = "james"
MyButton1.OK_Name = "mn"
End Sub

End Class

如何写 buttonOK buttonNO 的点击事件?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧