我通JS给一个服务器端label赋值
JS部份代码如下:
$("#label1").html(“测试”);赋值成功,当我点击页面服务器提交按钮后,页面回发后为什么label1的值又被初始化回到没有赋值前的数据了?
 if (!Page.IsPostBack)方法外根本没有初始化的方法啊。
       如果我是通过后台aspx.cs里给label1赋值
即label1.Text="测试",就一切正常,为什么JS给值就有问题了?大家帮帮忙哈,我现在必须得用JS啊。

解决方案 »

  1.   

    服务器事件触发后首先进入Page_Load事件执行,if (!Page.IsPostBack){}里面的不会执行,
    相当于页面重新加载
    而你JS赋值并没有在页面加载时执行,label的值还是初始的值,你可以把js写到window.onload事件里面再试
      

  2.   

    3楼的朋友,$("#label1").html(“测试”);赋值成功啊,页面上也显示出来了啊。。不能写在window.onload里啊,我只是写出了部份代码,实际上是根据某个层里的事件触发了这个label值改变
      

  3.   

    你实在要js赋值不变,又要执行后台,你用ajax或者updatepanel把你的button包起来嘛
      

  4.   

    if (!Page.IsPostBack)跟前台没有关系设置EnableViewState=true.看看
      

  5.   

    JS端只是在客户端给它赋值而已,当你点击服务器控件后,页面又重新提交,但是HTTP是无状态的,如果没有在服务器端做处理,返回的HTML当然又会回到初始状态。你的JS赋值是在什么时候? 需求不清,别人不好给你具体方案的。
      

  6.   

    程序赋值  写进viewstate  JS赋值  viewstate不变化
      

  7.   

    用js给html里的标签复制,跳转后台,只有hidden会保留状态,用其他控件会丢失状态。你试试增加一个隐藏域,用隐藏域来保存这个值。