【问题标题】:While databinding checkboxlist数据绑定复选框列表时
【发布时间】:2013-05-09 15:36:30
【问题描述】:

我在 asp.net 中有两个复选框列表,

第一个列表包含所有水果名称,第二个列表只有几个水果名称。

列表正在使用 sqldatasource 从数据库中填充

现在我需要做一些事情,以便第一个包含所有水果的列表应该只包含不在列表 2 中的水果

这是代码,先生,

private void AllFruitsNames()
{
    using (SqlDataSource ds = new SqlDataSource(ConnectionString(), "SELECT FruitName FROM FruitTable"))
    {
            CheckBoxList1.DataSource = ds;
            CheckBoxList1.DataTextField = "FruitName";
            CheckBoxList1.DataBind();
    }
}

private void PopulateOnlyFewFruitsNames(int crateID)
{
    CheckBoxList2.Items.Clear();

    using (SqlDataSource ds = new SqlDataSource(CS(), "SELECT FruitName FROM FruitTable Where crateID ='" + crateID + "'"))
    {
            CheckBoxList2.DataSource = ds;
            CheckBoxList2.DataTextField = "FruitName";
            CheckBoxList2.DataBind();
    }
}

我如何平衡水果,就好像水果在第二个复选框列表中,然后它应该从复选框列表 1 中删除

【问题讨论】:

  • crateID 来自哪里?
  • 从下拉列表中,先生,我正在使用的索引更改事件

标签: c# javascript jquery asp.net sql-server


【解决方案1】:

您似乎拥有想要在第二个列表中出现的水果的 ID。

只需从第一个查询中排除所有具有此 ID 的水果:

"SELECT FruitName FROM FruitTable WHERE crateID NOT IN(" + String.Joing(",",crateIDList) + ")"

顺便说一句:您真的不应该以这种方式构建 SQL 查询。它们容易受到 sql 注入的影响。请改用参数化查询。这是一篇关于该主题的文章:Using parameterized queries with the SQLDataSource

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 2018-01-03
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多