【问题标题】:Changing dropdownlist selection causes full postback. (it's more interesting than it sounds)更改下拉列表选择会导致完全回发。 (这比听起来更有趣)
【发布时间】:2010-05-06 13:20:42
【问题描述】:

这是场景。

我有一个带有文本框的搜索页面,允许某人输入搜索词并按 Enter。 (触发 TextChanged)。我有一个 DropDownList 指定将执行的搜索类型。它在标记中定义如下:

                    <asp:DropDownList ID="lstSearchType" runat="server" AutoPostBack="false">
                    <asp:ListItem Value="0">Last, First</asp:ListItem>
                    <asp:ListItem Value="1">Last</asp:ListItem>
                    <asp:ListItem Value="2">First</asp:ListItem>
                    <asp:ListItem Value="3">Liberty ID</asp:ListItem>
                    <asp:ListItem Value="4">E-mail</asp:ListItem>
                    <asp:ListItem Value="5">Telephone</asp:ListItem>
                    <asp:ListItem Value="6">Birthday (exact m/d/yyyy)</asp:ListItem>
                    <asp:ListItem Value="7">SSN (exact ###-##-####)</asp:ListItem>
                    <asp:ListItem Value="8">Address</asp:ListItem>
                </asp:DropDownList>

如您所见,AutoPostBack 设置为 false,并且没有事件挂钩。

按下回车键会触发 TextBox 的 OnTextChanged 事件,该事件会执行搜索并更新 UpdatePanel 中的 GridView。此 UpdatePanel 将其 UpdateMode 设置为有条件的,并且有一个触发器:搜索 TextBox 的 TextChanged 事件。

这很简单。

它几乎可以很好地工作。

每当我更改搜索类型时,下一次搜索都会进行完整的回发。除非我再次更改搜索类型,否则所有后续搜索都会进行部分回发(根据需要)。

此规则有一个例外:如果我加载页面并立即更改搜索类型,它不会执行完整的回发。因此,在任何回发(全部或部分)之前对 DropDownList 的第一次更改不会触发完整回发。

全面披露: 我正在做很多 JavaScript 来在异步请求期间更改 gridview 的外观。我在这里不详述,因为它似乎无关。仅当更改没有连接 JavaScript 的 DropDownList 时才会出现此问题。

有什么想法吗?

这快把我逼疯了。其他一切正常。

提前致谢, 克里夫

【问题讨论】:

  • @clifriffin 也许您将下拉列表设置为程序代码的自动回发,而您没有注意到这一点。无论如何,最好查看页面的源代码,看看这个下拉列表中是否有任何 javascript。
  • 我想通了。问题是 DropDownList 不在 UpdatePanel 中。如果不进行完整的回发,它就无法获得价值。由于 TextChanged 事件连接,Tex​​tBox 对此免疫。

标签: c# asp.net drop-down-menu updatepanel


【解决方案1】:

我想通了。问题是 DropDownList 不在 UpdatePanel 中。如果不进行完整的回发,它就无法获得价值。由于 TextChanged 事件连接,Tex​​tBox 对此免疫。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多