检查列表 - 将选定的值放入一组标签(文本)中

发布于 2024-11-08 20:41:46 字数 356 浏览 3 评论 0原文

一旦用户选择 5 个值,我将禁用 CheckBoxList。

我想从 CheckBoxList 中取出 5 个选定的项目,并将它们分配给 5 个不同的标签。

到目前为止,我所做

string test = "";
string test2 = "";

test += CheckBoxList.SelectedValue[0];
test2 += CheckBoxList.SelectedValue[1];

Label1.Text = test;
Label2.Text = test2;

的就是获取第一个字符并将相同的值分配给两个标签。我将如何迭代并获取每个选定的值并将它们分配给每个标签?

I will disable the CheckBoxList once a user selects 5 values.

I want to take the 5 selected items out of the CheckBoxList and assign them to 5 different labels.

So far I have this:

string test = "";
string test2 = "";

test += CheckBoxList.SelectedValue[0];
test2 += CheckBoxList.SelectedValue[1];

Label1.Text = test;
Label2.Text = test2;

All that does is get the first character and assign the same value to both labels. How would I iterate through and take each selected value and assign them to the each label?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半寸时光 2024-11-15 20:41:46
    var labels = new List<string>();
    int count = 0;
    foreach (ListItem item in CheckBoxList1.Items)
    {
        if (item.Selected)
            labels.Add(item.Value);
    }


    string mylabel1 = labels.Count > 0 ? labels[0] : string.Empty;
    string mylabel2 = labels.Count > 1 ? labels[1] : string.Empty;
    string mylabel3 = labels.Count > 2 ? labels[2] : string.Empty;
    string mylabel4 = labels.Count > 3 ? labels[3] : string.Empty;
    string mylabel5 = labels.Count > 4 ? labels[4] : string.Empty;
    var labels = new List<string>();
    int count = 0;
    foreach (ListItem item in CheckBoxList1.Items)
    {
        if (item.Selected)
            labels.Add(item.Value);
    }


    string mylabel1 = labels.Count > 0 ? labels[0] : string.Empty;
    string mylabel2 = labels.Count > 1 ? labels[1] : string.Empty;
    string mylabel3 = labels.Count > 2 ? labels[2] : string.Empty;
    string mylabel4 = labels.Count > 3 ? labels[3] : string.Empty;
    string mylabel5 = labels.Count > 4 ? labels[4] : string.Empty;
我不是你的备胎 2024-11-15 20:41:46

这是一个通用代码,适用于 5 或​​ 50 个项目/标签:

var selected = CheckBoxList.Items.Cast<ListItem>().Where(it => it.Selected)
for (i=0; i < selected.Count(); i++)
{
    lb = FindControl("Label" + i);
    if(lb != null)
        ((Label)lb).Text = selected.ElementAt(i).Value;
}

更新

由于您声明没有 LINQ,您可以像这样进行:

int i = 0;
foreach (var item in CheckBoxList.Items)
{
    if  (item.Selected)
    {
        lb = FindControl("Label" + i);
        if(lb != null)
            ((Label)lb).Text = item.Value;
        i++;
    }
}

更新 2

请记住这两种解决方案都假设您的标签从 Label0 开始。相应地进行调整。此外,还调整了代码以检查是否找到标签。

Here's a generic code, suitable for 5 or 50 items/labels:

var selected = CheckBoxList.Items.Cast<ListItem>().Where(it => it.Selected)
for (i=0; i < selected.Count(); i++)
{
    lb = FindControl("Label" + i);
    if(lb != null)
        ((Label)lb).Text = selected.ElementAt(i).Value;
}

Update

Since you stated you don't have LINQ, you can go like this:

int i = 0;
foreach (var item in CheckBoxList.Items)
{
    if  (item.Selected)
    {
        lb = FindControl("Label" + i);
        if(lb != null)
            ((Label)lb).Text = item.Value;
        i++;
    }
}

Update 2

Keep in mind that both solutions assume that your labels start at Label0. Adjust accordingly. Also, code was adjusted to check if the Label was found.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文