我在使用JQuery的ASP.NET页面上发现了一些困难。特别是我有两个主要问题。我需要使用JQuery来更改Label
和DropDownList
的值,然后我必须从后面的代码中读取这些值,但是当我这样做时,我会找到原始值。在客户端进行的更改将被忽略。如何从JQuery设置的值后面读取代码?
如何在服务器端读取正确的值?
我在使用JQuery的ASP.NET页面上发现了一些困难。特别是我有两个主要问题。我需要使用JQuery来更改Label
和DropDownList
的值,然后我必须从后面的代码中读取这些值,但是当我这样做时,我会找到原始值。在客户端进行的更改将被忽略。如何从JQuery设置的值后面读取代码?
如何在服务器端读取正确的值?
不是使用标签和下拉列表来设置值,而是使用Hiddenfield设置值,然后在代码后面使用HiddenField.Value获取该值。在大多数情况下,可以看到Label和DropdownLists值在Javascript代码设置不能在代码中检索的背后,却HiddenField值可以是retrieved.So尝试使用HiddenField ...
在Javascript中: -
<script>
$("#HiddenField1").Val("Your Value");
</script>
在代码隐藏: -
string value=HiddenField1.Value;
谢谢。好主意! – davioooh 2012-08-02 09:43:01
$("#mydropdownlist").val("thevalue");
只是确保选项标记中的值与val方法中的值匹配。
如果索引工作,就可以使用.attr()直接设置选择指数:
$("#mydropdownlist").attr('selectedIndex', 0);
这将其设置为在droplist的第一个值。
试试这个:使用Ajax请求更改服务器结果。当更改下拉选择。
$(function() {
$('#type').bind('change', function(ev) {
var value = $(this).val();
$.ajax({
...
data: {valueType: value, html: encodeURIComponent($("#addhtml").html())},
...
});
});
});
我曾经有过类似的问题,这个问题是事件验证,http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableeventvalidation.aspx,也可能是同样的问题。
您能发布一个代码示例吗?我认为你的建议可能有用,但我不能完全理解如何应用它。 – davioooh 2012-08-02 08:20:32
页面上的所有服务器端代码(您的代码隐藏)在响应发送到浏览器之前在服务器上执行。为了响应客户端的变化,为了做一些服务器端的事情,你需要向Web服务器发出另一个请求,通常是使用传统的表单元素提交或使用Ajax。 – nnnnnn 2012-08-02 07:51:58
@nnnnnn我实际上并不需要对客户端更改进行异步响应。我需要的是将所有更改发回服务器端... – davioooh 2012-08-02 08:00:37