【问题标题】:How to access the main page control values in user control如何访问用户控件中的主页控件值
【发布时间】:2013-07-19 12:18:22
【问题描述】:

我在 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" />

UserControl1.ascx:


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

【问题讨论】:

  • 您能否通过一个小代码示例说明您的目标是什么?

标签: asp.net .net vb.net user-controls


【解决方案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)

【讨论】:

    【解决方案2】:

    首先要在其后面的代码中找到一个控件,它必须是服务器端控件,您可以从用户控件中获取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 页面的同一个容器中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 2014-03-27
      相关资源
      最近更新 更多