Asp.net 在ascx控件中存储和传输值
我有一个问题,我已经挣扎了一段时间,它是关于将值从一个控件转移到另一个控件 基本上我有两个。ascx控件。在control1上:我有一个名为txtEmail的电子邮件文本框。txtEmail用于将电子邮件保存在SQL表中,单击update按钮后,我将加载带有电子邮件文本框的Control2。我需要control1的电子邮件文本框在control2的电子邮件文本框上可用 我试过各种不同的方法,但都没有用。我甚至尝试使用代理和事件,但我无法使其工作 有人知道我怎么做吗 问候 请查看以下代码:Asp.net 在ascx控件中存储和传输值,asp.net,sql,ascx,Asp.net,Sql,Ascx,我有一个问题,我已经挣扎了一段时间,它是关于将值从一个控件转移到另一个控件 基本上我有两个。ascx控件。在control1上:我有一个名为txtEmail的电子邮件文本框。txtEmail用于将电子邮件保存在SQL表中,单击update按钮后,我将加载带有电子邮件文本框的Control2。我需要control1的电子邮件文本框在control2的电子邮件文本框上可用 我试过各种不同的方法,但都没有用。我甚至尝试使用代理和事件,但我无法使其工作 有人知道我怎么做吗 问候 请查看以下代码: pu
public event EventHandler Notify;
public string Email
{
get { return txtEmail.Text; }
set {Email= value ; }
}
//按钮来处理更新
protected void btnUpdateDB_Click(object sender, EventArgs e)
{
var email = txtEmail.Text.ToString();
public BaseClass.BAL.MBAL m = new BaseClass.BAL.MBAL();
var s = new BaseClass.Controllers.m();
s.email=email;
if(m.save(s)!=0) txtMsave.Text="Saved....";
}
//second control
public void notifyEmailChange(object sender,EventArgs e)
{
txtUsername.Text = member1.Email;
}
protected void Page_Load(object sender, EventArgs e)
{
if(Page.IsPostBack)
{
member1.Notify += new EventHandler(notifyEmailChange);
}
}
public string email {
set { txtUsers.Text = value; }}
也许我是在淡化这个问题,但是如果您希望能够读取/写入每个自定义控件上的文本框,只需创建一个公共属性,该属性可以读取和写入两个控件上的文本框
public string EmailAddress {
get {
return txtEmailAddress.Text;
}
set {
txtEmailAddress.Text = value;
}
}
现在,包含两个控件的页面可以从第一个控件读取电子邮件地址,并将其写入第二个控件的电子邮件地址文本框中
如果我误解了这个问题,请告诉我。我过去这样做的方式是
public event EventHandler Notify;
在更新按钮中,单击事件处理程序
if(Notify != null)
{
Notify(this, new EventArgs());
}
在父控件中
在页面中加载
ucUserControl2.Notify += new EventHandler(NotifyUserControl);
并设置消息
protected void NotifyUserControl(object sender, EventArgs args)
{
ucUserControl2.Email = ucUserControl1.Email;
}
显然,您需要UserControls中的公共属性来公开电子邮件文本您确定不需要验证程序来检查两个电子邮件地址是否相同吗?Ben,这不是必需的,因为control1.Email用于创建随机密码。如果这是错误的,那么他们将不会收到登录所需的密码。这是一个不同的设置。基本上,它是一个应该由已知人员(即a公司的员工或特定组织的成员,如scouts等)使用的软件。您好,Zac,您的答案不起作用,因为控件加载在回发上,此时字符串将为空。asp.net提供多种机制来保存数据、查询字符串、,视图状态和会话,所有这些都可以在回发过程中保持字符串。嗨,扎克,我也尝试过这些,但不管出于什么原因,它们都是空的,比如session[“txtemail”]=txtemail.text;然后在另一个控件上调用它是不可能的。我甚至使用了httpcontext,但它们是空的,我认为这只是因为我使用的是自定义控件。如果您不能向会话添加对象并在回发后检索它,那么这与您的自定义控件无关。添加您试图在问题中使用的代码,我们可以尝试提供帮助。您好,这是代码:在control1受保护的bool updateuser(字符串电子邮件){user u=new user();u.Email=txtemail.Text.Tostring();u.updateuser(u);}