传值方式:ajax技术和普通传值方式
一、使用ajax技术实现:前台js调用后台函数
使用ajax准备工作:
1,前提需要引用一个dll 全名AjaxPro.2.dll
2,web.config中需要配置
<configuration> <system.web> <httpHandlers> <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/> </httpHandlers> <pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> </system.web> </configuration>
第一种传值方式(post方式传值到其他页面):
$.ajax({ type: "POST", url: "../../DispatchManage/ReportSaveData.aspx", data: { "data": encodeURI(result) }, // + "&tbrq=" + tbrq + "&dept=" + dept, success: function (msg) { if (msg == "-1") { alert("填报的数据的状态为审核中或者审核完成,不允许修改数据!!"); } else if (msg == "0") { alert("保存成功!"); } else { alert("保存失败!"); } } }); 页面ReportSaveData.aspx的后台需要解码获得参数data对应的值result,写法如下: Server.UrlDecode(Request["data"]);
第二种传值方式(页面前后台传值)
1,cs中代码:在Index类中,先注册Index类为Ajax,然后才能在这个类中写Ajax方法体 protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(Index)); //1处、index为类名 } [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)] public string MyRemarkInfo() { 方法块....... } 2,前台js代码:如何使用后台生命的Ajax方法: function RemarkInfos() { var ri=LRWorkflowWeb.Index; //2处、获取类(namespace.namespace.namespace.classname) var reinfo= ri.MyRemarkInfo();//3处、MyRemarkInfo()是方法 }
二、普通传值方式(非ajax)
1,前台js调用后台函数:借用后台的控件button实现; (1)html <input type="button" ID="BtnSaveBack" value="保存" class="sbutton vm" onclick="show_confirm()" /> <asp:Button ID="BtnSaveBackHidden" runat="server" style=" display:none; border:0;" OnClick="BtnSaveBack_Click" /> (2)js中间 function show_confirm() { var r = confirm("确认此项操作吗?"); if (r == true) { document.getElementById("<%=BtnSaveBackHidden.ClientID%>").click(); } } (3)cs文件中的后台函数(事件) public void BtnSaveBack_Click(object sender, EventArgs e) { 方法块 }