在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();

在C Sharp中,从用户控件传递单个值到包含Page'

您实际上不需要传递任何内容。只需在用户控件上创建一个属性,并从页面访问它:

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
}

最后,我选择创建一个单独的公共类来调用和控制购物车。事实证明,这是更高效、更简洁的代码!

谢谢你的建议。