0

我有 2 dropdownlist,它们绑定到 aSQLDataSource并且值2nd dropdownlist基于 1st dropdownlist。问题是默认情况下dropdownlist显示实际值。我把初始值放在 dpsem 中,所以它工作正常。但是当我做同样的dpsubj dropdownlist事情时,它也会显示以前的值。

如果我选择 dpsem--4 那么 dpsubj 应该是 A,B,C,如果我选择 dpsem--6 那么 dpsubj 应该是 D,E,F。但它显示 A,B,C,D,E,F...

我知道这是与 Autopostback 相关的问题...

     <asp:DropDownList ID="dpsem" runat="server" Height="28px" 
                   Width="99px" AutoPostBack="True" DataSourceID="selectsemester" 
                   DataTextField="sem_no" DataValueField="sem_no" AppendDataBoundItems="true">
                  <asp:ListItem Selected="True" Value="0">-select</asp:ListItem>

            </asp:DropDownList>

     <asp:DropDownList ID="dpsubj" runat="server" Height="28px" 
                   Width="99px" AutoPostBack="True" DataSourceID="Selectscode" 
                   DataTextField="scode" DataValueField="scode" AppendDataBoundItems="true">
                  <asp:ListItem Selected="True" Value="0">-select</asp:ListItem>

            </asp:DropDownList>

 <asp:SqlDataSource ID="Selectscode" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AttendenceManagementConnectionString %>" 
        SelectCommand="SELECT DISTINCT [scode] FROM [Semester_Wise_Subject] WHERE (([branch_name] = @branch_name) AND ([sem_no] = @sem_no))">
        <SelectParameters>
            <asp:ControlParameter ControlID="lbdept" DefaultValue="IT" Name="branch_name" 
                PropertyName="Text" Type="String" />
            <asp:ControlParameter ControlID="dpsem" DefaultValue="6" Name="sem_no" 
                PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>



    <asp:SqlDataSource ID="selectsemester" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AttendenceManagementConnectionString %>" 
        SelectCommand="SELECT DISTINCT [sem_no] FROM [Batch_year]">
    </asp:SqlDataSource>
4

3 回答 3

0

我相信您必须在第一个下拉列表中创建一个 SelectedIndexChanged 事件,并让该事件在第二个下拉列表中导致数据绑定。默认情况下,如果您不希望第二个下拉菜单显示数据,请摆脱默认参数值。

如果您正在使用 ajax 做任何事情,您还需要确保第一个下拉列表也更新脚本管理器中的第二个。

于 2013-03-13T17:55:53.970 回答
0

开始AppendDataBoundItems="false"_dpsubj

由于您将此属性设置为 true,因此在数据绑定之前不会清除项目。

于 2013-03-13T17:59:15.707 回答
0

您应该使用dpsubj.Items.Clear().. 然后再次在其上加载过滤后的数据selectedindexchanged将首先删除 dpsubj 下拉列表中的所有先前记录,然后使用代码在 dpsubj 中加载值

于 2013-03-13T17:51:40.000 回答