Dropdownlist在autopostback期间失去价值

时间:2013-06-18 17:29:37

标签: asp.net drop-down-menu autopostback

我有几个简单的下拉列表。第一个是由html中的linqdatsource绑定,autopostback设置为true。第一个的选择决定了第二个数据。当我在第一个中选择一个项目时,selectedindexChanged事件会触发;但是,所选值始终是列表中的第一项,然后列表将重新绑定并恢复为其默认状态。我是否必须在代码隐藏中绑定它以防止这种情况?

    

<asp:DropDownList ID="dd_shirtcolor" runat="server" AppendDataBoundItems="true" AutoPostBack="True">
    <asp:ListItem Text="Select Color" />
</asp:DropDownList>

<asp:LinqDataSource ID="LinqDataSource1" runat="server"
    ContextTypeName="IPC.IPCDataDataContext" EntityTypeName=""
    TableName="Shirts" Where="IsActive == @IsActive">
    <WhereParameters>
        <asp:Parameter DefaultValue="true" Name="IsActive" Type="Boolean" />
    </WhereParameters>
</asp:LinqDataSource>

3 个答案:

答案 0 :(得分:2)

确保启用了ViewState,以便在“选择”项目之前填充列表。 此外,请确保您不在Page_Load中重新填充并丢失所选值。 例如。 if(!IsPostback){//填充}

答案 1 :(得分:0)

自行管理级联下拉列表的一些替代方法是:

ASP.NET AJAX控件工具包: ASP.NET AJAX Cascading Drop Down

使用ASP.NET和jQuery级联下拉: Cascading Drop Down Using ASP.NET And jQuery

答案 2 :(得分:0)

我能够通过将page_init方法中的代码中的下拉列表与正确的!postback条件绑定而不是使用linqdatasource来绑定它来解决此问题。我仍然不确定是什么导致它。