【问题标题】:Dropdownlist looses value during autopostback下拉列表在自动回发期间失去价值
【发布时间】:2013-06-18 17:29:37
【问题描述】:

我有几个简单的下拉列表。第一个由 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>

【问题讨论】:

  • 我最近遇到了类似的 DropDownLists 问题。你如何确定dd_shirtcolor 中的值?是在后面的代码里吗?
  • 该列表在 dd_shirtlist 控件的 selectedindexchanged 事件期间绑定在代码隐藏中。我在加载事件中没有任何内容
  • 我相信问题可能出在那个代码上。您能否edit您的帖子并向我们展示该活动期间发生的情况?
  • 我已经将代码注释掉了,没有任何变化。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我能够通过使用适当的 !postback 条件绑定 page_init 方法后面代码中的下拉列表来解决此问题,而不是使用 linqdatasource 绑定它。但是,我仍然不确定是什么原因造成的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多