【问题标题】:How to select multiple checkbox from single column data in c# .net如何从 c# .net 中的单列数据中选择多个复选框
【发布时间】:2017-09-28 14:55:23
【问题描述】:

我正在尝试制作一个餐厅表单,当用户点餐时将数据存储到数据库中。如果用户再次访问并输入他的名字和姓氏,其他数据,如食物和取货选项,应自动归档。对于食物,我有一个复选框。

这里是插入代码:

string strCheckValue = "";
if (CheckBox1.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox1.Text;
}
if (CheckBox2.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox2.Text;
}
if (CheckBox3.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox3.Text;
}
if (CheckBox4.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox4.Text;
}
if (CheckBox5.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox5.Text;
}
if (CheckBox6.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox6.Text;
}
if (CheckBox7.Checked)
{
    strCheckValue = strCheckValue + "," + CheckBox7.Text;
}

strCheckValue 存储在数据库中并给出如下结果: ,Samosa,Biryani,Naan

现在我想选择用户之前在点击记住我按钮时订购食物时选择的所有食物。

为此,我的代码是:

//checkbox value display
CheckBox1.Checked = false;
CheckBox2.Checked = false;
CheckBox3.Checked = false;
CheckBox4.Checked = false;
CheckBox5.Checked = false;
CheckBox6.Checked = false;
CheckBox7.Checked = false;
string aa = dr["ctm_food"].ToString();
string[] a = aa.Split(',');
Label10.Text = a[2].ToString();
foreach (Control cc in this.Controls)
{
    if(cc is CheckBox)
    {
        CheckBox b = (CheckBox)cc;
        for(int j=1; j<a.Length; j++)
        {
            if (a[j].ToString() == b.Text)
            {
                b.Checked = true;
            }
        }
    }
}

在 label10 中,我可以看到用户订购的食物。但是该复选框没有被选中。完成此练习的正确方法是什么?

【问题讨论】:

  • 您使用的是哪个 ASP.NET?
  • 什么时候执行哪个代码?什么时候想记住用户的选择?您在使用此代码时遇到什么问题?
  • 它是 4.0 @JohnKennedy
  • 当用户点击订单按钮时​​使用插入代码。那是记住用户选择的代码。但是当用户按下记住我按钮时,我可以检索所有数据但无法根据数据选中复选框。 @ChetanRanpariya
  • 也许您需要b.Text.ToString() 进行文本比较而不是参考比较?此外,创建一个复选框数组并遍历它。这将使代码更有趣。

标签: c# mysql asp.net checkbox


【解决方案1】:

我相信this.Controls 不包含您的复选框。如果您将所有复选框引用保存在一个地方,它还将简化您的代码。

CheckBox[] checkboxes = new CheckBox[] {
    CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7
};

string aa = dr["ctm_food"].ToString();
string[] a = aa.Split(',');
Label10.Text = a[2].ToString();

foreach (CheckBox b in checkboxes) {
    b.Checked = false;
    for (int j = 1; j < a.Length; j++) {
        if (a[j].ToString() == b.Text) {
            b.Checked = true;
        }
    }
}

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 2021-04-11
    • 1970-01-01
    • 2017-01-14
    • 2020-03-31
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多