服务器端没有看到客户端的更改

时间:2012-01-25 20:02:08

标签: asp.net vb.net client-side

我想知道这是否正常。我使用jQuery为select添加了一个选项。当我使用asp按钮保存时,我在点击事件中看不到服务器端的更改。

添加选项后,HTML全部正确。

是编码问题还是我不​​明白? :P

$(selectCourant)
             .append($("<option></option>")
             .attr("value",$(dropdown).val())
             .text($(dropdown + " option:selected").text())); 

谢谢

ASP.NET和vb.net

1 个答案:

答案 0 :(得分:4)

是的,你不明白。

客户端Web浏览器端发生的情况不会通知服务器 - 除非您创建额外的代码并以编程方式执行此操作。

服务器端不知道,nether读取了dom(html struct),即使他希望这样做,也无法读取它。

解决方案是使用post值将其发回。例如,添加选项时,还要向隐藏输入添加其他值,并将操作回发到服务器端。然后,您负责任地阅读这些值,理解它们并更新您背后的代码数据。

背后的代码不仅不知道客户端上发生了什么,而且在页面发送完回来之后也不知道是什么一样,回来后回来了,这里是viewstate。 Codebehind在viewstate上保存大部分信息(除非您在控件或页面上禁用它)以记住更改。然后在发布回来后,viewstate发送到后面的代码,后面的代码解码它,并知道在回发之前做了什么。

多说几句话。 当您准备并“渲染”html页面时,您将所有html结构发送到浏览器客户端,并且浏览器呈现页面。当浏览器回发到服务器时,只发送回发变量的内容,这样服务器只知道返回的信息并使用这些信息重新播放新的html结构。