jquery 联动下拉框,动态添加dropdownlist option项后,点击查询按钮页面刷新后添加的项全部消失问题,急等指教!

smile840 2015-01-20 08:18:37

这是一个联动的案例 选择一级菜单 二级菜单随之改变, 现在选择二级菜单也就是成员那个下拉框的选项之后,点击查询(服务端查询)按钮,这个下拉框动态append的option都没有了,变成了空,请问如何选择完二级下拉的选项之后,点击查询按钮在后台能获取到它的选择项呢???
完整代码如下

$(document).ready(function() {
var $ddl = $("select[name$=txtPRJ_NAME0]");
$ddl.focus();
$ddl.bind("change", function() {
if ($(this).val() != "") {

loadEmployeeCarsTop($(this).val());

} else {

}
});

});


以下是调用的方法

function loadEmployeeCarsTop(selectedItem) {
var schdata = { id: selectedItem };

$.post(
"../../../WebHandler/DRProjectOperation.ashx"
, { method: 'GetData', param: selectedItem }
, function(result) {

var rejson = $.parseJSON(result);
if (rejson != null) {
$("select[name$=ddlMember] > option").remove();

for (var i = 0; i < rejson.length; i++) {
$("<option></option>").val(rejson[i].USERID).html(rejson[i].USERNAME)
}
}
});
}

这是一个联动的案例,txtPRJ_NAME0] 是在服务端绑定好的代码如下
DataSet dt = Facade.FacadeFactory.Instance.DR_PRJ_MEMBERFacade.QueryDR_PRJ_MEMBERDataSet(dr);
txtPRJ_NAME0.DataTextField = "PRJ_NAME";
txtPRJ_NAME0.DataValueField = "PRJ_ID";
txtPRJ_NAME0.DataSource = dt.Tables[0];
txtPRJ_NAME0.DataBind();
ListItem li = new ListItem();
li.Text = "--请选择--";
li.Value = "";
txtPRJ_NAME0.Items.Insert(0, li);
...全文
415 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
smile840 2015-01-28
  • 打赏
  • 举报
回复
引用 8 楼 sp1234 的回复:
“点击查询按钮在后台能获取到它的选择项呢”这根本不是什么可以持久的程序设计之道。因为刷新,界面变得乱了,没法看了。你有50个bug而现在直想让别人帮你解决1个,你应该知道这种方式持久不了,瞎耽误老板和自己的功夫与金钱。这条路“打不通”的。
您是说这种功能的实现方式就不对着呢,不应该这样去实现,或者这样根本实现不了,点击查询根本就不应该走后台服务端的那种查询方式?
  • 打赏
  • 举报
回复
你要搞懂net的刷新机制和js交互的区别 所谓刷新,就是向服务器发送请求,服务器会返回请求结果,这结果是服务端的结果,不可能包含客户端js交互的结果
bakdfkuk 2015-01-22
  • 打赏
  • 举报
回复
我写了一个级联下拉的插件,不知道合不合用,合用就拿去吧,我目前在用,如果有BUG反馈一下下jquery级联下拉http://www.wuyinweb.com/doc/53/53.aspx
  • 打赏
  • 举报
回复
“点击查询按钮在后台能获取到它的选择项呢”这根本不是什么可以持久的程序设计之道。因为刷新,界面变得乱了,没法看了。你有50个bug而现在直想让别人帮你解决1个,你应该知道这种方式持久不了,瞎耽误老板和自己的功夫与金钱。这条路“打不通”的。
  • 打赏
  • 举报
回复
asp.net的刷新页面机制跟轻量级的ajax机制是格格不入的,即使是UpdatePanel也是刷新重建后台页面的(而不是真正的ajax的)。web本质上都是“单页面的”,只要刷新,富客户端程序内容就丢了。 所以在这里,你不得不放弃你的ajax而转而使用asp.net ajax,或者放弃你的asp.net前端程序设计。
chengxiaolong518 2015-01-22
  • 打赏
  • 举报
回复
正如二楼说的脚本更改的下拉选择项是不记录状态的,你可以在更改下拉框的时候将其值放到一个隐藏字段里,让后提交的时候获取隐藏字段的值就OK了
smile840 2015-01-21
  • 打赏
  • 举报
回复
引用 2 楼 chenhaoying 的回复:
脚本更改的下拉选择项是不记录状态的,一旦执行postback事件后就丢失,要不你把那个服务端的查询也改为ajax的读取吧。
那个查询按钮是要重新绑定gridview的 而且在绑定的时候会对一些特殊的模板列进行处理,所以选择的后台处理,还有别的方法吗,在不改变那个服务端查询的前提下
chenhaoying 2015-01-21
  • 打赏
  • 举报
回复
脚本更改的下拉选择项是不记录状态的,一旦执行postback事件后就丢失,要不你把那个服务端的查询也改为ajax的读取吧。
smile840 2015-01-21
  • 打赏
  • 举报
回复
有了解这方面的高手吗,麻烦指点一下呢!!!!
smile840 2015-01-21
  • 打赏
  • 举报
回复
不要沉呀,高手请进

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧