javascript有多少方法将页面信息传递过去后台
1个回答
展开全部
使用JavaScript访问后台的方法,尝试了以下几种方法: 1.在<%%>中直接书写代码段 2.通过js直接执行button的click()方法 触发后台代码 3.Ajax 参考 http://blog.csdn.net/driftwing/archive/2008/11/26/3378061.aspx在后台代码处理页面中引入要访问的方法 4.将该方法发布为webservice 通过javascript直接调用webservice. 项目中需要一次性循环生成多张密码卡,而且麻烦的地方在于,前台后台需要共享相当多的属性,通过hiddenField来传递。而每张密码卡都需要首先调用后台getTopMatrix()方法返回一个字符串,客户端获得字符串后做处理并存储至EXCEL,若此过程成功则调用另一个后台方法preToFormal()更新数据库。初步尝试的时候使用了方法一,方法一的缺点比较明显,当页面加载的时候<%%>中的内容被自动解析,无法实现可控的调用。 <script> /*直接获取返回值*/ var str_matrix="<%=getTopMatrix()%>"; </script> 方法二解决了可控性的问题。实现步骤如下: 1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2、在前台写一个js函数,内容为document.getElementById("btn1").click(); 3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数; 具体实现代码略。 当通过click事件触发后台方法后,后台方法里面对一个HiddenField赋值.而此时前台的js代码仍在执行,需要用到这个HiddenField处理后的值。结果往往是后台没有为HiddenField赋值前台js代码已经取到这个HiddenField的值,这时候仍然是空值。而通过加计时器的方法又显得相当笨拙,且效率很低。 这个需求最终通过方法三Ajax解决,解决步骤: 1、首先发起一个Ajax请求,访问后台页面中的getTopMatrix()方法获取密码字符串,为避免方法二中的问题,采用Ajax的同步方式。 2、请求响应完毕之后,获取返回的密码字符串通过Javascript处理并存储至Excel。 3、步骤2成功之后则发起另一个ajax请求,更新数据库相关字段。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询