代码隐藏

时间:2015-05-08 12:02:43

标签: c# sql asp.net sql-server checkboxlist

我正在使用sql数据源和一个checkboxlist来过滤datalistview。 我想从后面的代码为sqldatasource创建一个参数,并使用SQL IN来过滤datalistview行。 当我在复选框列表中选中1复选框时,一切正常... 但是当我检查多个复选框时,datalist视图不会获取任何数据。 这是我对sql datasource的选择代码:

protected void DS_subgroupID_changed_Selecting(object sender,SqlDataSourceSelectingEventArgs e)
{
    List<String> selected = new List<String>();
    foreach (ListItem item in CheckBoxList_subgroup.Items)
        if (item.Selected)
        {
            selected.Add(item.Value);
        }

    String commaselect = String.Join(",", selected.ToArray());
    e.Command.Parameters["@product_subgroup"].Value = commaselect;


}

这是我的sqldatasource控件:

<asp:SqlDataSource ID="DS_subgroupID_changed" runat="server"
   ConnectionString="<%$ ConnectionStrings:nimrokhDBConnectionString %>" 
   SelectCommand="SELECT * FROM [tbl_product] WHERE (([product_group] = @product_group) AND ([product_subgroup] IN (@product_subgroup)))"
   OnSelecting="DS_subgroupID_changed_Selecting">
        <SelectParameters>
            <asp:ControlParameter ControlID="radio_list_group" Name="product_group" PropertyName="SelectedValue" Type="String" />
            <asp:Parameter Name="product_subgroup" />
        </SelectParameters>
        </asp:SqlDataSource>

我有一个表子组,其中包含subgroupID作为int和subgroupname, 我有一个表产品,其中包含子组以存储子组ID,但这是在nvarchar中。我想知道这是否会导致问题。因为我的checkboxlist值设置为subgroupID form subgroup table。

我乐于助人。 谢谢你们。

0 个答案:

没有答案