0

场景是这样的:

说我有一个表格,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>

现在我希望能够处理提示 Label Lbl_TlTp1、 DataLabelLBL_1 和 TextBoxTBX_1

作为一个集合或集合,非常灵活(允许枚举等'..)

是通过将它(那个“设置”)作为一个类或对象来封装这些控制项......每个都作为一个成员吗?

我希望以后能够将“集合”作为一个实体来操作

setOfControls Sct1 = new setOfControls()

public void ActAppon(setOfControls section)
{
    execProcedure1(section);

    foreach(control ctr in section)
    {
        doTheThing(ctr);
    }
}
    ...etc'

实现此解决方案的方法是什么?

4

1 回答 1

1

为标记创建一个UserControl (.ascx),并为您的 Web 控件公开属性,然后处理它..

UserControl (.ascx)命名为ControlGroup.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。因为它在页面上注册您的用户控件,例如

<%@ 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";
}

或者您可以加载您的用户控件编程。喜欢

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

并且可以将其添加到另一个控件中,甚至可以为这些控件填充列表。

我希望它会帮助你。

于 2012-10-27T06:11:17.577 回答