CheckBoxList 在不可见时不传递值

CheckBoxList not passing values when not Visible

我在 asp.net

中有以下 CheckBoxList
<asp:CheckBoxList ID="cat_comp" runat="server" DataSourceID="cats_point_calc" 
DataTextField="cats_points" DataValueField="cats_points" Visible="false"></asp:CheckBoxList>

以及以下 C# 以自动 select OnClick 方法上的所有复选框;

foreach (ListItem li in cat_comp.Items)
        {
            li.Selected = true;
        }

        int catselected = 0;

        for (int i = 0; i < cat_comp.Items.Count; i++)
        {
            if (cat_comp.Items[i].Selected)
            {
                string catval = cat_comp.Items[i].Value;
                catselected += int.Parse(catval);
            }
        }

当我将 cat_comp Visible 设置为 true 时,此代码工作正常,是否有一种方法可以在用户无法查看此 CheckBoxList 的情况下传递这些值?

每当您设置 ASP.NET 服务器控件的 Visible 属性 时,不会呈现该特定控件,因此您将无法计算该值。

您可以改为设置 display:none 样式(或添加 class)以便隐藏控件,但您可以进行计算,如下所示:-

<asp:CheckBoxList ID="cat_comp" runat="server" CssClass="DisplayNone"

<style>
  .DisplayNone { display: none; }
</style>