场景就像是这样:
说我有一个表,html表,该表的<td>
控制很少,每个控件都有一组控件,
与该特定的<td>
有关,但不一定包含在<td>
范围内。
例如:
<asp:Label ID="Lbl_TlTp1" runat="server">
<table>
<tr>
<td ID="TD_1" runat="server">
<asp:Label ID="LBL_1" runat="server" />
</td>
<td>
<asp:TextBox ID="TBX_1" runat="server" />
</td>
</tr>
</table>
现在,我希望能够解决提示标签Lbl_TlTp1
,Datalabel LBL_1
和TextBox TBX_1
作为集合或集合,非常灵活(允许枚举等等。)
是通过将其("集合")作为封装那些控制项目的类或对象来使其成为成员?
我希望以后能够将"集合"作为一个实体
setOfControls Sct1 = new setOfControls()
public void ActAppon(setOfControls section)
{
execProcedure1(section);
foreach(control ctr in section)
{
doTheThing(ctr);
}
}
...etc'
实现此解决方案的方法是什么?
为标记制作 UserControl (.ascx)
,并揭示您的网络控制的属性,并在此处理。
制作一个名为ControlGroup.ascx
UserControl (.ascx)
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ControlGroup.ascx.cs" Inherits="NameSpaceName.ProjectName.ControlGroup" %>
<asp:Label ID="Lbl_TlTp1" runat="server">
<table>
<tr>
<td ID="TD_1" runat="server">
<asp:Label ID="LBL_1" runat="server" />
</td>
<td>
<asp:TextBox ID="TBX_1" runat="server" />
</td>
</tr>
</table>
在(ControlGroup.ascx.cs)
后面的代码中构成属性。喜欢
namespace NameSpaceName.ProjectName
{
public partial class ControlGroup: System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{ }
public Label T1Tp1 { get { return Lbl_TlTp1; }}
public Label LBL { get { return Lbl_TlTp1; }}
public TextBox TBX{ get { return Lbl_TlTp1; }}
}
}
现在,您可以在任何ASPX页面中使用此USERCONTROL。因为它在
之类的页面上注册您的USERCONTROL<%@ Page ....... %>
<%@ Register TagPrefix="uc1" TagName="CG" Src="ControlGroup.ascx" %>
并在标记中使用此控件,例如
<uc1:CG runat="server" id="cg1" />
和页面加载中,您可以访问此控件及其属性。喜欢
protected void Page_Load(object sender, EventArgs e)
{
cg1.T1Tp1.Text = "Some Text";
cg1.LBL.Text = "Some Lable Text";
cg1.TBX.Text = "Some TextBox Text";
}
或者您可以加载USERCORTROL程序性。喜欢
List<ControlGroup> setOfControls = new List<ControlGroup>();
for(int i=0; i<10 ;i++)
{
ControlGroup cg1 = Page.LoadControl("~/ControlGroup.ascx") as ControlGroup;
if(cg1 != null)
{
cg1.T1Tp1.Text = "";
cg1.LBL.Text = "";
cg1.TBX.Text = "";
setOfControls.Add(cg1);
}
}
,并且可以在另一个控件中添加,甚至在这些控件的列表上填充列表。
我希望它对您有帮助。