/// <summary>
/// 填充空标签
/// (根据标签类别分组,根据每行的数量填充相应的空标签以达到根据标签关系分行的目的)
/// </summary>
/// <param name="tagList"></param>
/// <param name="repeatColumns"></param>
private void FillEmptyTag(List<tags> tagList, int repeatColumns)
{
var list = tagList.GroupBy(x => x.tagTypeId)
.Select(y => (new { tagTypeId = y.Key, count = y.Count() })).ToList();
int index = 0; // 插入空标签的索引
foreach (var item in list)
{
index += item.count;
// 算出空标签的数量
int count = repeatColumns - item.count % repeatColumns;
if (count > 0 && count != repeatColumns)
{
for (int i = 0; i < count; i++)
{
// 初始化空标签
tags emptyTag = new tags();
emptyTag.tagId = "0";
emptyTag.name = string.Empty;
tagList.Insert(index + i, emptyTag);
}
// 插入空标签之后,更新index
index += count;
}
}
}
/// <summary>
/// 隐藏CheckBoxList控件中的空标签
/// </summary>
/// <param name="chkl"></param>
private void HideEmptyTag(CheckBoxList chkl)
{
foreach (ListItem li in chkl.Items)
{
if ("0".Equals(li.Value))
{
li.Selected = false;
li.Attributes.Add("style", "visibility:hidden");
}
}
}
动态绑定“标签”,要按照标签类别换行,可以在绑定的数据中插入相应的空数据,然后隐藏空数据,就可以实现换行的效果
CheckBoxList动态绑定数据按需换行
最新推荐文章于 2024-08-25 23:36:07 发布