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">
4

2 回答 2

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

}
于 2013-02-21T01:15:13.160 回答
2

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

var v = pt.SelectedItem;

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

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

于 2013-02-21T00:59:39.600 回答