【问题标题】:How to reference dynamically created Array Checkbox?如何引用动态创建的数组复选框?
【发布时间】:2018-07-22 07:23:32
【问题描述】:

我想做一个 if-else 语句,但我不知道如何引用动态创建的数组 CheckBoxes

请注意,每个 CheckBox 都来自 Excel 工作表的列名。

CheckBox[] chk = new CheckBox[dt.Columns.Count];


for (int i = 0; i <= dt.Columns.Count - 1; i ++)
{

    chk[i] = new CheckBox();
    chk[i].Name = dt.Columns[i].ColumnName;
    chk[i].Text = dt.Columns[i].ColumnName;
    chk[i].AutoCheck = true;
    chk[i].Bounds = new Rectangle(10, 20 + padding + dynamicHeight, 40, 22);

    panelCol.Controls.Add(chk[i]);
    dynamicHeight += 20;

    panelCol.Size = new Size(120, dynamicHeight);
    panelCol.Controls.Add(chk[i]);

    chk[i].Location = new Point(0, dynamicHeight);
    chk[i].Size = new Size(120, 21);

    panelCol.BackColor = Color.White;
    panelCol.AutoScroll = true;
    // panelCol.AutoScrollMinSize = new Size (0, 1200);
}

【问题讨论】:

  • 为什么每次循环迭代都创建新数组?
  • 现在已修复。 :)

标签: c# arrays checkbox datagridview


【解决方案1】:

将您的chk 变量设为页面类的公共属性。您可以从 aspx 标记中引用它。

您的 *.aspx.cs 文件:

public CheckBox[];

protected void Page_Load(object sender, EventArgs e)
{
    /* ... other code ... */

    Chk = new CheckBox[dt.Columns.Count];

    for (int i = 0; i <= dt.Columns.Count - 1; i ++)
    {
        Chk [i] = new CheckBox();

        /* ... other code ... */
    }
}

您的 *.aspx 文件:

<!-- some markup -->

<% if(Chk.Any()) { %>
    <%-- do some work here --%>
<% } else { %>
    <%-- do some other work here --%>
<% } %>

<!-- some other markup -->

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 1970-01-01
    • 2019-01-26
    • 2015-11-23
    • 2011-08-14
    • 2011-08-08
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多