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();
}