asp.net 控件的问题

fonvey 2009-07-10 02:50:38
问题是test2.aspx中的 Button1按钮,按下去,控件相应的方法没执行,,如果是在Page_Load那里就执行正常,,

请问有什么方法,使在Button1按钮下也执行正常


控件代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="u1.ascx.cs" Inherits="UserControl_u1" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>




using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;

public partial class UserControl_u1 : System.Web.UI.UserControl
{
public string ad = "";
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = ad;
Response.Write(ad);
}
}


调用控件的页面如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>

<%@ Register src="UserControl/SubPage.ascx" tagname="SubPage" tagprefix="uc1" %>
<%@ Register src="UserControl/u1.ascx" tagname="u1" tagprefix="uc2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>


<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<uc2:u1 ID="u11" runat="server" />

</div>
</form>
</body>
</html>





using System;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
u11.ad = "哈俣";

}
}
protected void Button1_Click(object sender, EventArgs e)
{



u11.ad = "哈俣llll";


}
}


...全文
105 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq196260188 2009-07-16
  • 打赏
  • 举报
回复
路上很多人都说了正解了,,楼主可结贴了
olwyjol 2009-07-10
  • 打赏
  • 举报
回复
路过
wuyq11 2009-07-10
  • 打赏
  • 举报
回复
通过委托设置值
或Textbox txt= (Textbox )WebUserControl1.FindControl("Textbox1");
txt.Text = "";
参考
参考
yechd 2009-07-10
  • 打赏
  • 举报
回复
public partial class UserControl_u1 : System.Web.UI.UserControl
{
public string ad = "";
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = ad;
Response.Write(ad);
}
}

改为

public partial class UserControl_u1 : System.Web.UI.UserControl
{
public string ad = "";
protected void Page_PreRender(object sender, EventArgs e)
{
TextBox1.Text = ad;
Response.Write(ad);
}
}

屯里的人 2009-07-10
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;

public partial class UserControl_u1 : System.Web.UI.UserControl
{
public string ad = "";

public string textValue
{
set
{ TextBox1.Text = value;}
get
{ return TextBox1.Text;}
}

protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = ad;
Response.Write(ad);
}
}






using System;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
u11.textValue="哈俣";

}
}
protected void Button1_Click(object sender, EventArgs e)
{


u11.textValue="哈俣llll";


}
}

这样啊?看看行不行,不行再解决!
liaoyunt07 2009-07-10
  • 打赏
  • 举报
回复
你要实现什么样的效果啊?
屌丝女士111 2009-07-10
  • 打赏
  • 举报
回复
学习了很多
谢谢
er824088er 2009-07-10
  • 打赏
  • 举报
回复
学习啊!!!!
fonvey 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sandy945 的回复:]
这个问题的本质是 事件的执行 顺序
先是页面的Page_Load 事件执行,然后是用户控件的Page_Load 事件执行,然后是页面中控件的事件执行,在这里就是button 的 click事件。
在执行button 的click 事件时,你为ad 赋值,可是你却是在用户控件的Page_Load 事件中将 ad 的值赋给textbox,可在执行button 的click 事件时,用户控件的Page_Load 事件 已经执行完了,所以你看到的是在页面的Page_Load 事件 中为 ad 赋值的效果。
[/Quote]


谢谢这个大哥的解说
fonvey 2009-07-10
  • 打赏
  • 举报
回复
为什么赋值他不会重新执行的啊
阿非 2009-07-10
  • 打赏
  • 举报
回复
这个问题的本质是 事件的执行 顺序
先是页面的Page_Load 事件执行,然后是用户控件的Page_Load 事件执行,然后是页面中控件的事件执行,在这里就是button 的 click事件。
在执行button 的click 事件时,你为ad 赋值,可是你却是在用户控件的Page_Load 事件中将 ad 的值赋给textbox,可在执行button 的click 事件时,用户控件的Page_Load 事件 已经执行完了,所以你看到的是在页面的Page_Load 事件 中为 ad 赋值的效果。
xiaojing7 2009-07-10
  • 打赏
  • 举报
回复
阿非 2009-07-10
  • 打赏
  • 举报
回复

using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;

public partial class UserControl_u1 : System.Web.UI.UserControl
{
public string ad = "";

public string textValue
{
set
{ TextBox1.Text = value;}
get
{ return TextBox1.Text;}
}

protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = ad;
Response.Write(ad);
}
}






using System;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
u11.textValue="哈俣";

}
}
protected void Button1_Click(object sender, EventArgs e)
{


u11.textValue="哈俣llll";


}
}

alan0128 2009-07-10
  • 打赏
  • 举报
回复
你的按钮事件就是赋值,你想有什么反应
阿非 2009-07-10
  • 打赏
  • 举报
回复
UserControl


using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;

public partial class UserControl_u1 : System.Web.UI.UserControl
{
public string ad = "";

public void SetTextValue(string value)
{
TextBox1.Text = value;
}

protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = ad;
Response.Write(ad);
}
}



aspx

using System;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
u11.SetTextValue("哈俣");

}
}
protected void Button1_Click(object sender, EventArgs e)
{


u11.SetTextValue("哈俣llll");


}
}

62,025

社区成员

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

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

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

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