我有 2 个 DropDownList,第一个有一个只有一个字段的 SqlDataSource,另一个 DropDownList 有一个 SqlDataSource,其中包含基于第一个下拉列表选择的 where 子句。
如果我按下一个按钮,第二个下拉列表会填充查询,但是在从第一个下拉列表中选择一个项目后如何让它填充。
您可以处理SelectionChangeCommitted
第一个组合框的事件。然后在构建数据源之后,您可以将其分配给您的第二个组合框。像下面
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
//build your datasource with the query
comboBox2.DataSource = datasource;
}
使用第一个下拉列表的选定索引更改事件填充第二个列表
通过将第二个下拉列表查询的方法添加到 selectionChangeCommited 事件,我得到了这个在我自己的项目中的一个工作。像这样的东西:
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
fillComboBox2();
}
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
//Your SqlDataSource must have a parameter for selecting its records ("YourParameter")
//P.E. the SqlDataSource SelectCommand looks like this:
//"SELECT [id], [name] FROM [table] WHERE [id] = @YourParameter"
//Include a selectparameter <asp:Parameter Name="YourParameter" Type="Int32" />
//inside your SqlDataSource. Next, do this:
sqldatasource2.SelectParameters("YourParameter").DefaultValue = comboBox1.SelectedValue
comboBox2.DataSource = sqldatasource2.Select(DataSourceSelectArguments.Empty)
comboBox2.DataBind()
}