0

我在 dot net aspx 页面中有很多控件,我想访问用户控件页面中的一些控件值。不使用任何属性(变量)任何可用的选项..?

默认.aspx:


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

用户控件1.ascx:


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

2 回答 2

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)
于 2013-07-20T21:45:49.257 回答
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 页面的同一个容器中。

于 2013-11-29T08:23:14.573 回答