C# 如何部分隐藏asp.net复选框列表项

C# 如何部分隐藏asp.net复选框列表项,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我正在编写一个asp.net页面,其中包含多方面的导航。我有一堆过滤器,它们呈现为复选框列表。这些复选框列表可能很长(例如国家和地区)。在页面加载时,我只想为每个类别显示8个选项,下面有一个“更多”按钮。如果用户单击更多,则仅该类别的选项列表应展开。我试着和你一起做这件事 chkBoxCountryNameList.Items[i].Attributes.CssStyle["display"] = "none"; 这是可行的,但是当ASP.NET呈现复选框列表时,它会使用一个表,每个复选框控件

我正在编写一个asp.net页面,其中包含多方面的导航。我有一堆过滤器,它们呈现为复选框列表。这些复选框列表可能很长(例如国家和地区)。在页面加载时,我只想为每个类别显示8个选项,下面有一个“更多”按钮。如果用户单击更多,则仅该类别的选项列表应展开。我试着和你一起做这件事

chkBoxCountryNameList.Items[i].Attributes.CssStyle["display"] = "none";
这是可行的,但是当ASP.NET呈现复选框列表时,它会使用一个表,每个复选框控件嵌套在自己的元素中。这意味着,即使我不想看到的项目没有显示,但它们的行的空白是空白的,因此有相当多的空白我仍然需要满足

我想到了另一种方法,那就是去服务器端取其余的项目,但这是非常服务器端沉重的

在客户端执行此操作的最佳选项是什么,这样我就不必到服务器端重新查询数据库了


谢谢

您还需要为每个要隐藏的复选框隐藏表行。搜索如何在代码隐藏上运行javascript,然后每次呈现复选框列表时都运行此javascript代码

function hideCheckBoxes() {
    $("table[id$='idOfCheckboxList']").find(":checkbox:hidden").each(function() {
        $(this).closest("tr").hide();
    });
}
编辑: 您可以使用:gt jquery选择器来满足您的需要


谢谢,但是我想您展示给我的代码将依赖于我先进入服务器端隐藏复选框,然后使用javascript隐藏标记。我想做的一切客户端。有没有办法隐藏除前8个以外的所有s?这样我就省去了服务器故障。
function hideCheckBoxes() {
    $("table[id$='idOfCheckboxList']").find(":checkbox:gt(8)").each(function() {
        $(this).closest("tr").hide();
    });
}