2012-03-13 173 views
0

我有两个下拉列表,程度和程序分别,我想根据从度下拉列表中选择的程度生成程序列表值。我怎么能做到这一点,代码如下:将参数传递给SQLDataSource

<asp:DropDownList ID="Degree_DList" runat="server" DataSourceID="Degrees_DropdownList" 
DataTextField="DEGREE_NAME" DataValueField="DEGREE_ID" AppendDataBoundItems="True"> 
</asp:DropDownList> 

<asp:SqlDataSource ID="Degrees_DropdownList" runat="server" ConnectionString="<%$ ConnectionStrings:admConnectionString %>" ProviderName="<%$ ConnectionStrings:admConnectionString.ProviderName %>" 
SelectCommand="SELECT DEGREE_ID, DEGREE_NAME FROM DEGREE"> </asp:SqlDataSource> 

<asp:DropDownList ID="Program_Dlist" runat="server" AppendDataBoundItems="True" DataSourceID="Programs_DropdownList" DataTextField="PROGRAM_NAME" DataValueField="PROGRAM_ID"></asp:DropDownList> 

<asp:SqlDataSource ID="Programs_DropdownList" runat="server" ConnectionString="<%$ ConnectionStrings:admConnectionString %>" ProviderName="<%$ ConnectionStrings:admConnectionString.ProviderName %>" 
SelectCommand="SELECT PROGRAM_ID, PROGRAM_NAME FROM PROGRAMS WHERE DEGREE_ID = @DEGREE_ID"><SelectParameters> 
<asp:ControlParameter Name="DEGREE_ID" ControlID="Degree_DList" PropertyName="SelectedValue" /> 
</SelectParameters> 
</asp:SqlDataSource> 

回答

0

你必须通知DataSource你提供一些参数在SELECT

<asp:SqlDataSource ... > 
    <SelectParameters> 
     <asp:Parameter Name="DEGREE_ID" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

不要忘了提供代码参数:

MyDataSource.SelectParameters["DEGREE_ID"].DefaultValue = "12345"; 
+0

现在它在DropDown列表中没有显示任何内容 – Umair 2012-03-13 09:58:41

+0

哪一个?用于第一个下拉列表的应该保持不变。对于第二个你应该提供输入的地方(我想反应selectedindexchanged)。 – 2012-03-13 10:05:33

+0

我想第二个下拉列表完全动态,它会根据第一个下拉列表中的选定项目生成值列表 – Umair 2012-03-13 10:12:52