目标:在 ascx 页面中从我的 aspx 页面中读取隐藏字段值
问题:我是 ASP 的新手,我不知道如何完成此操作。我可以在 aspx 页面中设置隐藏字段的值,但如何在 ascx 页面中读取该值?我使用的代码如下
Page1.aspx
<%@ Register Src="~/UserControl/Page2.ascx" TagName="Info" TagPrefix="uc" %>
<asp:HiddenField ID="hdnfldInfo" runat="server" />
Page1.aspx.cs
String strInfo = Convert.ToString(e.CommandArgument);
hdnfldInfo.Value = strInfo;
Page2.ascx
HiddenField Info = (HiddenField)this.Info.FindControl("hdnfldIncDesc");
Page2.ascx 上面的代码没有相同的值。我错过了什么或做错了什么?
提前感谢您的任何评论、推荐或建议
您需要在 ascx(也称为用户控件)上创建一个属性,并让 aspx 页面根据隐藏字段设置该属性
让你的 ascx 代码像这样:
public class MyUserControl : UserControl{
public String MyProperty {get;set;}
//...do stuff with myProperty
}
然后在后面的aspx页面代码
public class MyPage : Page{
protected void Page_Load(){
HiddenField info = (HiddenField)myHiddenField;
MyUserControl control = myusercontrol;
control.MyProperty = info.Value;
}
}
您可能需要更改设置该属性的页面生命周期的哪一部分。
我还会查看一些关于创建用户控件的文章,因为您是 asp.net 的新手。稍后会有返回。
看看:Gernal 中关于创建用户控件的好文章:http://msdn.microsoft.com/en-us/library/3457w616(v=vs.100).aspx (跳到 Adding Custom Properties and Methods to the User Control 相关问题部分)
和send custom parameters to user control ascx有一个好的例子
我是一名优秀的程序员,十分优秀!