2011-08-12 27 views
0

背後,我需要從一個用戶控件父頁面的onload事件的onload事件傳遞一個值。我發現在這個計算器代碼,但我似乎無法得到它的工作/適應它:通單值從用戶控件包含頁面的代​​碼用C夏普

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

回答

0

最後我選擇創建一個單獨的公共類調用和控制車。這原來是更有效和更乾淨的代碼!

謝謝您的建議。

0

此代碼:

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 
} 
+0

對不起我在使用此一展身手,但它不會工作 – ComfortablyNumb

0

它不是好方法,但如果你真的現在你在那裏做什麼,你可以用屬性嘗試

mayby是這樣的:

//child uc class 
... 
public string MyValue { get; private set; } 

//... loaded (...) 
{ 
    ... 
    this.MyValue = "Value"; 
} 

// Parent uc class 
//... loaded (...) 
{ 
    ... 
    string childValue = this.ucChildControl.MyValue; 
} 
+0

麻煩的是我真的不知道我在做什麼!我剛剛開始學習.net c#。我可以看到你來自哪裏,但我無法在練習中使用它。 UC代碼很好。但它變得串childValue = this.ucChildControl.MyValue;在父頁面中很好地播放。我的UC類的名字叫車,但我得到一個錯誤說有一個爲車中沒有定義。 – ComfortablyNumb

+0

確保購物車被宣佈爲公共,以便您可以從該頁面訪問它。 –

+0

cart是這樣聲明的> public partial class cart:System.Web.UI.UserControl。我拿出部分,並沒有什麼區別。 – ComfortablyNumb

1

你不」噸真的需要什麼。只要創建您的用戶控件的屬性,並從頁面訪問:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string userControlValue = UserControl.UserControlValue; 
} 
+0

是的,我已經這樣做了,但我得到的錯誤:名稱車不存在於當前的上下文中。 – ComfortablyNumb

+0

您是否將購物車屬性公開? –

相關問題