Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 级联数据绑定<;ajaxtoolkit:combobox>;及<;asp:dropdownlist>;在asp.net中_C#_Asp.net_Ajaxcontroltoolkit - Fatal编程技术网

C# 级联数据绑定<;ajaxtoolkit:combobox>;及<;asp:dropdownlist>;在asp.net中

C# 级联数据绑定<;ajaxtoolkit:combobox>;及<;asp:dropdownlist>;在asp.net中,c#,asp.net,ajaxcontroltoolkit,C#,Asp.net,Ajaxcontroltoolkit,我有一个asp.net搜索表单,其中包括一个ajaxToolkit组合框和一个标准的asp下拉列表。两个控件都绑定到两个独立的SqlDatasource组件 大概是这样的: <ajaxToolkit:ComboBox ID="cbConvenzionato" runat="server" AutoCompleteMode="SuggestAppend" DropDownStyle="Dro

我有一个
asp.net
搜索表单,其中包括一个
ajaxToolkit组合框
和一个标准的
asp下拉列表
。两个控件都绑定到两个独立的
SqlDatasource
组件

大概是这样的:

<ajaxToolkit:ComboBox
    ID="cbConvenzionato"
    runat="server"
    AutoCompleteMode="SuggestAppend"
    DropDownStyle="DropDownList"
    DataSourceID="sdsConvenzionati"
    DataTextField="nome"
    DataValueField="id"
    AutoPostBack="true"
    OnSelectedIndexChanged="cbConvenzionato_SelectedIndexChanged" />

<asp:DropDownList
    ID="ddlVeicoli"
    DataSourceID="sdsVeicoli"
    DataTextField="targa"
    DataValueField="id"
    runat="server"
    AutoPostBack="true"
    OnSelectedIndexChanged="ddlVeicoli_SelectedIndexChanged"
    AppendDataBoundItems="true">
    <asp:ListItem Text="TUTTI" Value="" Selected="True" />
</asp:DropDownList>

<asp:SqlDataSource
    ID="sdsConvenzionati"
    runat="server"
    ConnectionString="<%$ ConnectionStrings:db %>"
    ProviderName="<%$ ConnectionStrings:db.ProviderName %>"
    SelectCommand="
        SELECT
            id,
            nome
        FROM
            anag_convenzionati
        ORDER BY nome;" />

<asp:SqlDataSource
    ID="sdsVeicoli"
    runat="server"
    EnableCaching="false"
    CancelSelectOnNullParameter="false"
    ConnectionString="<%$ ConnectionStrings:db %>"
    ProviderName="<%$ ConnectionStrings:db.ProviderName %>"
    SelectCommand="
        SELECT 
            id, 
            targa
        FROM 
            veicoli_contratti
        WHERE
            ((@id_convenzionato IS NULL) OR (id_convenzionato = @id_convenzionato))
        ORDER BY targa;">
    <SelectParameters>
        <asp:ControlParameter
            Name="id_convenzionato"
            ControlID="cbConvenzionato"
            PropertyName="SelectedValue"
            Direction="Input"
            ConvertEmptyStringToNull="true"
            DbType="Int32"
            DefaultValue="" />
    </SelectParameters>
</asp:SqlDataSource>
我认为在
cbconventioniato
中选择一个项目后,我应该以这种方式过滤
ddlVeicoli
项目。。。但它不起作用。。。为什么?

如果我在调试中查看
sdsVeicoli
SelectParameters
,我可以看到
id\u convenzionato
被正确地设置为所选值(id来自
cbConvenzionato
),我还打赌
sdsNoleggi
数据集将被正确地更新为新值,因为我以前多次这样做过。那为什么不是呢?我还试图在
sdsVeicoli.Select()
调用之后强制执行
ddlVeicoli.DataBind()
。。。但这没有效果。

我这样做:

protected void cbConvenzionato_SelectedIndexChanged(object sender, EventArgs e)
{
    ddlVeicoli.DataSource = null;

    sdsVeicoli.Select(DataSourceSelectArguments.Empty);

    ddlVeicoli.DataSource = sdsVeicoli;
    ddlVeicoli.DataBind();

    Search();
}
protected void cbConvenzionato_SelectedIndexChanged(object sender, EventArgs e)
{
    ddlVeicoli.DataSource = null;

    sdsVeicoli.Select(DataSourceSelectArguments.Empty);

    ddlVeicoli.DataSource = sdsVeicoli;
    ddlVeicoli.DataBind();

    Search();
}