未声明用户控件变量

时间:2013-02-21 00:57:21

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

我有一个在用户控件中声明的变量。它是用户控件中下拉列表的值。当我尝试在aspx页面上的If语句中使用它时,它表示该变量未被声明。有没有办法在aspx页面上声明变量或让它识别出它是在用户控制页面上声明的? 谢谢

我正在调用aspx页面顶部的代码

<%@ Register src="pType.ascx" tagname="pType" tagprefix="uc2" %>

我正在使用if语句

<%If pt.SelectedValue = "1" Then%>
    \\do things 
    <%End If%>

在控制中,pt由

定义
<asp:DropDownList ID="pt" runat="server">

2 个答案:

答案 0 :(得分:2)

我可能需要查看代码,但您已尝试

var v = pt.SelectedItem;

if (v == "1")
{
// do things
}

请注意,此代码需要在后面的代码(.cs)文件中运行,而不是在ascx或aspx文件中运行:)

答案 1 :(得分:2)

我认为你不能在aspx页面中访问用户控件的属性。

我知道您可以做的是在代码中声明用户控件并将其动态添加到您的页面。

protected void Page_Init(object sender, EventArgs e)
{

      //MyControl is the Custom User Control with a code behind file
      MyControl myControl = (MyControl)Page.LoadControl("~/MyControl.ascx");

      if (myControl.SelectedValue == 1) {
         //do work
      }
      // User Control is a placeholder in your aspx page
      UserControlHolder.Controls.Add(myControl);

}