我想知道这是否正常。我使用jQuery为select添加了一个选项。当我使用asp按钮保存时,我在点击事件中看不到服务器端的更改。
添加选项后,HTML全部正确。
是编码问题还是我不明白? :P
$(selectCourant)
.append($("<option></option>")
.attr("value",$(dropdown).val())
.text($(dropdown + " option:selected").text()));
谢谢
ASP.NET和vb.net
答案 0 :(得分:4)
是的,你不明白。
客户端Web浏览器端发生的情况不会通知服务器 - 除非您创建额外的代码并以编程方式执行此操作。
服务器端不知道,nether读取了dom(html struct),即使他希望这样做,也无法读取它。
解决方案是使用post值将其发回。例如,添加选项时,还要向隐藏输入添加其他值,并将操作回发到服务器端。然后,您负责任地阅读这些值,理解它们并更新您背后的代码数据。
背后的代码不仅不知道客户端上发生了什么,而且在页面发送完回来之后也不知道是什么一样,回来后回来了,这里是viewstate。 Codebehind在viewstate上保存大部分信息(除非您在控件或页面上禁用它)以记住更改。然后在发布回来后,viewstate发送到后面的代码,后面的代码解码它,并知道在回发之前做了什么。
多说几句话。 当您准备并“渲染”html页面时,您将所有html结构发送到浏览器客户端,并且浏览器呈现页面。当浏览器回发到服务器时,只发送回发变量的内容,这样服务器只知道返回的信息并使用这些信息重新播放新的html结构。