请教各位高手,我现在在asp.net的工程中有两个用户控件分别为A和B
A控件有二个TextBox,和一个Button
B控件上面有一个A控件的对象,和一个TextBox
我现在有一个WebForm1.aspx窗体调用B控件.这样,在WebForm1界面上同时出现A和B控件上的内容.
问题是,我在B控件里面,怎么来触发A控件的Button事件,触发后,在B控件上的TextBox里面显示A控件两个输入框的内容?希望给出C#的例子!谢谢!
A控件有二个TextBox,和一个Button
B控件上面有一个A控件的对象,和一个TextBox
我现在有一个WebForm1.aspx窗体调用B控件.这样,在WebForm1界面上同时出现A和B控件上的内容.
问题是,我在B控件里面,怎么来触发A控件的Button事件,触发后,在B控件上的TextBox里面显示A控件两个输入框的内容?希望给出C#的例子!谢谢!
解决方案 »
- ArrayList 传递问题
- 关于response.end中止线程的问题
- (CSDN的人气太差了,提个问题几乎没有人回答)有谁知道有没有下拉多选框的WEB第三方控件(ASP.NET)
- 在VS2005里运行程序时出现错误,怎么解决?执行 SQL 文件“InstallCommon.sql”时发生错误
- 我在页面中加入用户控件后,页面中的一个ImageButton点击就没有任何反应了,去掉用户控件后就好了,该怎么办?
- 求高手帮下忙?网站发布文章时候,出现错误!Server Error in '/' Application.
- 问道关于发送邮件的问题.发送邮件出现乱码.不知道怎么解决.
- FileUplod 服务器端上传文件出错
- WinForm多线程如何处理窗体假死的状况
- ASP 多行文本框问题
- 深圳C#NO1---1534924,欢迎深圳C#高手加入
- CustomValidator验证文本长度,如何将长度也作为客户端函数的参数
Public Class WebUserControl1
Inherits System.Web.UI.UserControl Public Delegate Sub RtxtEventHandler(ByVal sender As Object, ByVal e As RtxtEventArgs)
Public Event RtxtClick As RtxtEventHandler#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox '注意: 以下占位符声明是 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 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Rtxt()
End Sub Public Sub OnRtxtClick(ByVal e As RtxtEventArgs)
RaiseEvent RtxtClick(Me, e)
End Sub Public Sub Rtxt()
Dim e As RtxtEventArgs = New RtxtEventArgs(TextBox1.Text, TextBox2.Text)
OnRtxtClick(e)
End Sub
End ClassPublic Class RtxtEventArgs
Inherits EventArgs Public ReadOnly txtOne, txtTwo As String Public Sub New(ByVal txtOne As String, ByVal txtTwo As String)
Me.txtOne = txtOne
Me.txtTwo = txtTwo
End Sub
End Class
Public Class WebForm11
Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Button2 As System.Web.UI.WebControls.Button
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox '注意: 以下占位符声明是 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()
AddHandler WebUserControl11.RtxtClick, AddressOf Me.myclick
End Sub#End Region
Protected WebUserControl11 As WebUserControl1 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
End Sub Public Sub myclick(ByVal sender As Object, ByVal e As RtxtEventArgs)
Me.TextBox1.Text = e.txtOne
Me.TextBox2.Text = e.txtTwo
End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
WebUserControl11.Rtxt()
End Sub
End Class
非常谢谢你.但我想要的是C#的例子.
http://www.developerfusion.com/utilities/convertcsharptovb.aspx这里你翻译下吧...会有些差别..不过自己看一下应该能够了解的把。
public event EventHandler BtnEvent;定义控件中按钮事件
private void BtnQuery_Click(object sender, System.EventArgs e)
{
if (BtnEvent != null)
{
BtnEvent(sender,e);
}
}
将你定义的用户控件拖放到你的页面,更改控件名称为UserWebCtrl在你的调用页面的cs代码中加入定义protected BtnTextInputWebCtrl UserWebCtrl;在初始化代码中加入
override protected void OnInit(EventArgs e)
{
.....
btnTextInputWebCtrl.BtnEvent += new EventHander(this.test);
}private void test(object sender ,System.EventArgs e)
{
//前台你要处理的事件
}
通过UserWebCtrl引用用户控件
不知道你是排斥看vb,还是没学过vb的人,就是看不懂vb的东西。
if (BtnEvent != null)
{
BtnEvent(sender,e);
}
BtnEvent是为空的,没办法执行BtnEvent(sender,e);
这句代码
用户A控件中定义
public event EventHandler BtnEventA;
public TextBox textBoxA
定义控件中按钮事件
private void BtnQuery_Click(object sender, System.EventArgs e)
{
if (BtnEventA != null)
{
BtnEvent(sender,e);
}
}
B.ascx
用户B控件中定义
public event EventHandler BtnEventB;
public TextBox textBoxB
定义控件中按钮事件
private void BtnQuery_Click(object sender, System.EventArgs e)
{
if (BtnEventB != null)
{
BtnEvent(sender,e);
}
}将你定义的用户控件A,B拖放到你的页面,更改控件名称为ACtrl , BCtrl在你的调用页面的cs代码中加入定义protected A ACtrl ;
protected B BCtrl ;在初始化代码中加入
override protected void OnInit(EventArgs e)//这段代码是自动生成的,隐藏折叠了的,你要打开添加
{
.....
B.BtnEventB += new EventHnader(this.test);//这个不能少!!!
}private void test(object sender ,System.EventArgs e)
{
ACtrl.textBoxA.text = BCtrl.textBoxB.Text;
}