当ajax填充时,在代码隐藏中选择下拉选项
本文关键字:选择 选项 隐藏 代码 填充 ajax | 更新日期: 2023-09-27 18:09:51
我遇到了一个大问题,花了几个小时试图使它工作,但运气不好。
我的问题是,我有2下拉菜单,一旦第一个被选中,第二个是ajax填充。但是当我想用c#代码后面的捕获它时,所选的值不会反映。
是否有任何适当的方法通过这样做和捕获第二个下拉框,只使用后面的代码,没有使用isPostBack Request
方法?
如果你看看我的新跑步网站,在导航栏下面,你会看到我的场景。
http://www.mabinx.com/我必须在这个页面上捕获它:http://www.mabinx.com/AddYourWebsite
任何帮助将不胜感激!:)
将第二个下拉菜单放在更新面板中,然后为属性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控件来返回,使您能够从页面中检索所需的任何值,然后重定向响应以执行搜索