我在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 :(得分:1)
例如,要检索aspx页面中包含的ascx控件中定义的文本框,您可以尝试:
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 :(得分:1)
首先,为了在代码后面找到一个控件,它必须是服务器端控件,你可以从用户控件获取aspx页面控件的值,如下所示
在
后面的用户控制代码中使用此代码 var tb = (TextBox)this.Parent.FindControl("myTextBox");
string s = tb.Text;//you'll get the value of TextBox in s
这里&#34; myTextBox&#34;是我的aspx页面中TextBox的id。
注意:我将myTextBox和User Control放在我的aspx页面的同一个容器中。