在C Sharp中,从用户控件传递单个值到包含Page'
本文关键字:包含 单个值 Page Sharp 控件 用户 | 更新日期: 2023-09-27 18:05:30
我需要从用户控件的onload事件传递一个值给父页面的onload事件。我在stackoverflow上找到了这个代码,但我似乎无法让它工作/适应它:
Public Property SomeValue() As String
Get
Return textbox1.Text
End Get
End Property
我需要传递的值是来自数据库的单个int。
conn.Open();
reader = comm.ExecuteReader();
if (reader.Read())
{
shoppingCartHeadID = Convert.ToInt32(reader["shoppingCartHeadID"]);
hfShoppingCartHeadID.Value = shoppingCartHeadID.ToString();
}
reader.Close();
您实际上不需要传递任何内容。只需在用户控件上创建一个属性,并从页面访问它:
protected void Page_Load(object sender, EventArgs e)
{
string userControlValue = UserControl.UserControlValue;
}
这不是一个好方法,但如果你真的知道你在做什么,你可以尝试使用属性
可能是这样的:
//child uc class
...
public string MyValue { get; private set; }
//... loaded (...)
{
...
this.MyValue = "Value";
}
// Parent uc class
//... loaded (...)
{
...
string childValue = this.ucChildControl.MyValue;
}
代码:
Public Property SomeValue() As String
Get
Return textbox1.Text
End Get
End Property
在c#中是这样的:
public String SomeValue {
get{ return textbox1.text}
}
我认为子用户控件应该设置一个属性,父用户控件应该读取什么。
//child
public string DatatoShare{get;set;}
protected override Onload()
{
DatatoShare = "Whatever you want"
base.Onload()
}
//parent
private ChildUserControl child;
public string NeedChildsData()
{
return child.DatatoShare
}
最后,我选择创建一个单独的公共类来调用和控制购物车。事实证明,这是更高效、更简洁的代码!
谢谢你的建议。