2013-02-21 79 views
1

我有一个在用户控件中声明的变量。它是用户控件中下拉列表的值。当我尝试在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"> 
+0

如何将用户控件嵌入到aspx页面中。也许提供你如何嵌入控件并尝试访问变量的代码片段。 – Victor 2013-02-21 00:59:54

+0

谢谢!我添加了一些代码 – Michelle 2013-02-21 01:03:30

回答

2

我可能需要看代码,但你有没有试过

var v = pt.SelectedItem; 

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

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

+0

我不确定我是否理解你的答案,但我非常感谢你的时间。我添加了一些澄清的代码,这对你有意义吗?谢谢! – Michelle 2013-02-21 01:04:11

+0

此代码应该用于您的控件后面的代码中,而不是标记中。 – 2013-02-21 04:20:50

+0

啊我明白了。谢谢! – Michelle 2013-02-21 14:59:41

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); 

} 
+0

谢谢你的帮助! – Michelle 2013-02-21 01:17:25