2013-07-20 144 views
0

我在dot net aspx頁面中有很多控件,我想訪問用戶控件頁面中的一些控件值。沒有使用任何屬性(變量)可用的任何選項..?如何在用戶控件中訪問主頁面控件值

Default.aspx的:


<input type="hidden" name="Hidden1" value="1" /> 
<input type="hidden" name="Hidden2" value="2" /> 
<input type="hidden" name="Hidden3" value="3" /> 

UserControl1.ascx:


Response.write("Hidden 1 Value" & Request("Hidden1")) 
Response.write("Hidden 2 Value" & Request("Hidden2")) 
Response.write("Hidden 3 Value" & Request("Hidden3")) 
+0

你能澄清你的目標是一個小代碼的例子嗎? – ermagana

+0

請參閱編輯的帖子。 – bgs

回答

1

要檢索,例如,從ascx控件在aspx頁面中定義的文本框包含在它你可以嘗試:

Dim myTextBox As TextBox = Ctype(Me.Parent.FindControl("myTextBoxName"), TextBox) 

請注意,您要檢索的控件必須具有runat="server"屬性,否則無法在服務器端看到該屬性。

在你的問題你張貼三個控件沒有runat="server";你也可以使用:

<asp:HiddenField ID="HiddenField1" runat="server" Value="1" /> 
<asp:HiddenField ID="HiddenField2" runat="server" Value="2" /> 
<asp:HiddenField ID="HiddenField3" runat="server" Value="3" /> 

在這種情況下,上面的命令將變成:

Dim myHiddenField As HiddenField = Ctype(Me.Parent.FindControl("myHiddenFieldName"), HiddenField) 
1

首先是爲了找到代碼中的控制背後一定是服務器端控件,你可以得到的從用戶控件的aspx頁面控件的值如下

使用此代碼在用戶控件的代碼背後

  var tb = (TextBox)this.Parent.FindControl("myTextBox"); 
      string s = tb.Text;//you'll get the value of TextBox in s 

這裏「myTextBox」是我的aspx頁面中TextBox的id。

注意:我把myTextBox和用戶控件放在我的aspx頁面的同一個容器中。

相關問題