4

我在我的项目中创建了一个带有选项卡容器的用户控件。由于禁用某些选项卡,我想从 aspx 页面访问选项卡容器。例如,我需要从 aspx 页面动态隐藏第一个选项卡和第三个选项卡。因为我对不同的页面使用相同的用户控件。请帮我解决这个问题。

<%@ Register TagPrefix="cust" TagName="Creation" Src="~/Cust_Creation.ascx" %>
<div>
   <cust:Creation ID="uc_more_pack" runat="server" />
</div>

一世

4

2 回答 2

3

在您的用户控件上添加一个公共方法,该方法可通过使用您的用户控件的页面或控件进行访问。此方法可以采用您想要确定子选项卡容器状态的任何参数。

public void SetTabStatuses (bool tab1Enabled, bool tab2Enabled...){/* set status here */}

或者

public void SetTabStatuses (SomeStatusEnum status) {/* set status here */}

将用户控件视为对象,您添加到其中的控件应视为该对象上的字段。我建议的方法是允许您封装他们的行为。

于 2013-02-13T06:59:33.180 回答
1

在用户控件上创建公共属性:例如。

 public bool ShowTab1 {get; set;}
 public bool ShowTab2 {get; set;}
 public bool ShowTab3 {get; set;}
 public bool ShowTab4 {get; set;}

然后从 .aspx.cs 页面设置:

protected void Page_Load(object sender, System.EventArgs e)
{
  usercontrol1.ShowTab1 = false;
  usercontrol1.ShowTab2 = true;
  usercontrol1.ShowTab3 = false;
  usercontrol1.ShowTab4 = true;
}

使用该属性设置 UserControl 中的控件:

protected void Page_Load(object sender, System.EventArgs e)
{
  Tab1.Visible = ShowTab1;
  Tab2.Visible = ShowTab2;
  Tab3.Visible = ShowTab3;
  Tab4.Visible = ShowTab4;
}
于 2013-02-13T07:32:16.683 回答