只有10分,问 动态加载用户控件取 属性值问题

symbol_bc 2009-09-25 10:03:27
我要在页面中动态加载一些用户控件,每个用户控件都是一个独立的逻辑单元,我给他们每一个都增加属性便于对外访问,
比如:
public partial class WebUserControl1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.strSql = this.textbox1.text + this.text2.text + ... ;
}

/// <summary>
/// 公共成员
/// </summary>
public string strSql;
}

把他们加载在页面的placeholder中,
protected void Page_Load(object sender, EventArgs e)
{
if(!this.ispostback)
{
this.LoadControl("WebUserControl1.ascx")
this.LoadControl("WebUserControl2.ascx")
this.LoadControl("WebUserControl3.ascx")
}
else
{
//怎样在页面回发的时候取得控件的公共成员的值呢,this.placeholder.controls.count = 0
}
}


怎么取呢
...全文
74 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
symbol_bc 2009-09-25
  • 打赏
  • 举报
回复
还有我想问,为什么在page_load中loadControls取不到,在init中就可以呢??
ViewStates 2009-09-25
  • 打赏
  • 举报
回复
public string UserName
{
get{string.IsNullOrEmpty(ViewState["UserName"].ToString())?"":ViewState["UserName"].ToString();}
set{ViewState["UserName"]=value;}
}
symbol_bc 2009-09-25
  • 打赏
  • 举报
回复
我的代码:用户控件
public partial class WebUserControl1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
this.s = this.tb.Text;
}

private string _s;

public string s
{
get { return this._s; }
set { this._s = value; }
}
}

调用页:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
WebUserControl1 wu = (WebUserControl1)this.ph.FindControl("symbol");
string sss = wu.s;
}
}

protected override void OnInit(EventArgs e)
{
base.OnInit(e);

WebUserControl1 wu = (WebUserControl1)this.LoadControl("WebUserControl1.ascx");

wu.ID = "symbol";

this.ph.Controls.Add(wu);
}
}
symbol_bc 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liutengt 的回复:]
C# code//在MyControl.ascx用户控件里 建一个属性publicstring UserName
{//可改成其他控件get {return TextBox1.Text; }set { TextBox1.Text= value; }
}//在使用页面重写OnInit方法protectedoverridevoid OnInit(EventArgs e)
{
¡­
[/Quote]


哥们你真棒,我现在已经能取到用户控件了,但是还是取不到属性值
kings2015 2009-09-25
  • 打赏
  • 举报
回复

//在MyControl.ascx用户控件里 建一个属性
public string UserName
{
//可改成其他控件
get { return TextBox1.Text; }
set { TextBox1.Text = value; }
}

//在使用页面重写OnInit方法

protected override void OnInit(EventArgs e)
{
MyControl control = (MyControl)this.LoadControl("MyControl.ascx");
control.ID = "myC";
form1.Controls.Add(control);//from1可改成其他控件
}

//获取
MyControl con = (MyControl)form1.FindControl("myC");
if (con != null)
{
Response.Write(con.UserName);
}
symbol_bc 2009-09-25
  • 打赏
  • 举报
回复

symbol_bc 2009-09-25
  • 打赏
  • 举报
回复
必须顶起来
symbol_bc 2009-09-25
  • 打赏
  • 举报
回复
果然是穷啊,没人理,顶
大家好,又见面了!EasyUI又更新了,这次更新内容还是不少的,具体内容请参考下面的更新说明,官方的更新说明中还少了1条,我给补上了。 jQuery EasyUI 1.3.5版本更新内容: Bug(修复) searchbox:修复“searcher”函数提供的“name”参数错误的; combo:修复“isValid”方法无法返回布尔; combo:修复点击页面某一个combo组件的下拉列表时触发的“onHidePanel”事件会导致页面上其他combo组件的下拉列表被关闭的; combogrid:修复某些从combo组件继承来的方法无法使用的。 Improvement(改进) datagrid:改进检查行时候的性能; menu:允许追加菜单分隔符; menu:新增“hideOnUnHover”属性用于在鼠标离开菜单的时候指示是否需要隐藏菜单; slider:新增“clear”和“reset”方法; tabs:新增“unselect”方法、“onUnselect”事件; tabs:新增“selected”属性,用于指定的默认打开的面板; tabs:Tab Panel(Tab页)新增“collapsible”属性,用于设置是否允许摺叠面板; tabs:新增“showHeader”属性、“showHeader”方法和“hideHeader”方法; combobox:允许“disabled”属性禁用下拉列表选项; tree:改进数据加载时候的性能; pagination:新增“layout”属性,用于自定义控件的样式布局; accordion:新增“unselect”方法、“onUnselect”事件; accordion:新增“select”和“multiple”属性; accordion:新增“getSelections”方法; datebox:新增“sharedCalendar”属性,允许多个datebox控件共享使用同一个calendar控件。 datebox:新增“buttons”属性,用于自定义日历下方的按钮。 (译者注:该点更新内容官方更新公告上没有注明,具体内容和用法请看datebox的API。) 历史版本: - jQuery EasyUI 1.3.4 离线API简体中文版 http://download.csdn.net/detail/richie696/6302785 - jQuery EasyUI 1.3.4 离线API简体中文版 http://download.csdn.net/detail/richie696/5363933

62,244

社区成员

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

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

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

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