当ajax填充时,在代码隐藏中选择下拉选项

本文关键字:选择 选项 隐藏 代码 填充 ajax | 更新日期: 2023-09-27 18:09:51

我遇到了一个大问题,花了几个小时试图使它工作,但运气不好。

我的问题是,我有2下拉菜单,一旦第一个被选中,第二个是ajax填充。但是当我想用c#代码后面的捕获它时,所选的值不会反映。

是否有任何适当的方法通过这样做和捕获第二个下拉框,只使用后面的代码,没有使用isPostBack Request方法?

如果你看看我的新跑步网站,在导航栏下面,你会看到我的场景。

http://www.mabinx.com/

我必须在这个页面上捕获它:http://www.mabinx.com/AddYourWebsite

任何帮助将不胜感激!:)

当ajax填充时,在代码隐藏中选择下拉选项

将第二个下拉菜单放在更新面板中,然后为属性OnSelectedIndexChange分配一个代码隐藏方法,如下所示:

<asp:UpdatePanel runat="server">
<ContentPanel>
    <asp:DropDownList ID="MYDDL" runat="server" 
    OnSelectedIndexChanged="MethodThatRunsWhenChangeIsMade" AutoPostBack="true">
    </asp:DropDownList>
</ContentPanel>
</asp:UpdatePanel

然后在代码后面:

protected void MethodThatRunsWhenChangeIsMade(object sender, EventArgs e)
{
// Do something, like populate a third dropdown
// If you need to populate another drop down, or something similar, put that in the same update panel
}

解决方案:

  • 如果你用ajax填充。net下拉列表,代码隐藏将无法在回发时获得动态添加的列表项。

  • 你所要做的就是创建一个。net隐藏输入标签(运行服务器),并绑定一个onChange事件,用选择的下拉选择值填充。net隐藏字段。

  • 要在代码隐藏中引用选定的ajax'ed下拉列表项,只需引用。net隐藏字段值。

您的click事件将浏览器重定向到执行搜索:

$('.btnSearch').click(function (e) {
    e.preventDefault();
    window.location = "/Search/" + $('.ddlCountry option:selected').val() + "/" + $('.ddlState option:selected').val() + "/" + $('.ddlCategory option:selected').val();
});

由于页面正在重定向并且没有发回从ddlState下拉列表中选择的值,当页面加载后续时间时将不可用。

与其使用JavaScript更改位置,为什么不使用ImageButton控件来返回,使您能够从页面中检索所需的任何值,然后重定向响应以执行搜索