2009-04-10 56 views

回答

9

寫屬性在你的用戶控件公開其內容,例如,

public string TextBoxValue 
{ 
    get { return txtControl1.Text; } 
} 

這樣你就可以得到文本框的值不會暴露整個文本框控件作爲公共對象。

2

Jon Limjap的答案爲這類問題提供了最佳解決方案 - 使用公共屬性公開控制值。但是,如果你不想這樣做(或者你必須爲很多控件執行此操作,並且希望避免爲每個控件創建公共屬性),則可以使用Reflection來「查找控件」在所需的UserControl的ChildControls中:

TextBox txt = UserControl1.FindControl("myTextBox") as TextBox; 

if (txt != null) 
{ 
    string val = txt.Text; 
} 
0

我認爲從請求中獲取值比較容易。你可以寫這樣的通用方法找到它:

string get_value(string control_name) 
    { 
     var key = Request.Form.AllKeys.First(x => x.ends_with(control_name)); 
     return Request.Form[key]; 
    } 
1

的.aspx頁面的頂部,上面加標籤的下面一行。

<%@ Register TagPrefix="Test" TagName="TestControl" Src="Test.ascx" %> 

該指令註冊控件,以便在處理頁面時識別它。 TagPrefix確定控件的唯一名稱空間,TagName是用戶控件的名稱,Src是用戶控件的路徑。 像

<Test:TestControl id="TestControl" runat="Server"/> 

訪問和設置用戶聲明用戶控件控制在.aspx頁值: 用戶可以訪問,並設置從.aspx頁通過屬性的用戶控制的值,使用JavaScript和在代碼隱藏的詳細信息如下所示 使用屬性 如果test.ascx控件有兩個文本框並提交按鈕。您可以通過在.aspx頁面中聲明公共屬性來訪問.aspx頁面中控件中的文本框的值。 .ascx頁面。

public string FirstName 
{ 
get{return txtFirstName.Text;} 
set{txtFirstName.Text = value;} 
} 

在.aspx頁面中,您可以通過訪問姓

TestControl.FirstName 
You can set the FirstName of the control from aspx page using 
TestControl.FirstName = "Suzzanne" 

注:ref

相關問題