js eval()执行传参函数的写法

.cs

 public class Message<T>
    {
        // 数据总数
        public int? Total { get; set; }

        // 关键数据
        public List<T> Rows { get; set; }

        // 信息状态
        // 0:失败,1:成功, 2:其它
        public int? Status { get; set; }

        // 返回信息
        public string Msg { get; set; }

        //js前台执行方法
        public string JsExecuteMethod { get; set; }

        public override string ToString()
        {
            return "Total:" + this.Total +
                   ",Rows:" + this.Rows +
                   ",Status:" + this.Status +
                   ",Msg:" + this.Msg;
        }
    }

.ashx.cs

public string QueryWarnInfoByZhuanId(HttpContext context)
        {
            string ret = null;
            var message = new Message<WarnRec>();
            var warnrecbll = new WarnRecBll();
            var id = context.Request.Params["zhuanid"];
            if (string.IsNullOrEmpty(id))
            {
                return ret;
            }
            var zhuanid = int.Parse(id);
            try
            {
                var dt = warnrecbll.FindBy(zhuanid);
                var list = ConvertHelper<WarnRec>.ConvertToList(dt);
                message.Rows = list;
                message.Status = 1;
                message.Msg = "返回成功";
                message.JsExecuteMethod = "respose";
                ret = _jss.Serialize(message);
            }
            catch (Exception)
            {
                message.Status = 0;
                message.Msg = "返回失败";
                Log.Error(message.ToString());
            }
            return ret;
        }

.js

/**
* *ajax成功时返回resultObject是json数据
**/
function serviceSuccess(resultObject) {
    if (resultObject==null) {
        return true;
    }
    switch (resultObject.Status) {
        case 0:
        case 2:
            parent.messager("提示", resultObject.Msg);
            break;
        case 1:
            eval(resultObject.JsExecuteMethod +"(resultObject)");
            break;
        default:
    }
}
/**
*  ajax成功返回时
*  显示告警信息data到页面
**/
function respose(data) {
    var resHtml = "";
    for (var i = data.Rows.length - 1; i >= 0; i--) {
        resHtml += "<li>" +
                            data.Rows[i].LogType + "&nbsp;&nbsp;" +
                            eval("new " + data.Rows[i].Occurdt.split('/')[1]).Format("yyyy-MM-dd HH:mm:ss") + "&nbsp;&nbsp;" +
                            data.Rows[i].LogDesc + "&nbsp;&nbsp;" +
                  "</li>";
    }
        $("#response").html(resHtml);
}

 

时间: 2024-12-28 06:03:30

js eval()执行传参函数的写法的相关文章

window.addEventListener来解决让一个js事件执行多个函数_javascript技巧

可能你也碰到过这种情况,就是在js的代码中用了window.onload后,可能会影响到body中的onload事件.你可以全写在body中,也可以全放到window.onload中,但是这样并不是很方便,有时我们需要两个同时用到.这时就要用window.attachEvent和window.addEventListener来解决一下. 下面是一个解决方法.至于attachEvent和addEventListener的用法,可以自己Google或百度一下. 复制代码 代码如下: if (docu

JavaScript去除空格的三种方法(正则/传参函数/trim)_javascript技巧

方法一: 个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 其次.这个方法使用了JavaScript 的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较方便. 下面就来看看这个属性是怎么来用的. 返回对象类型原型的引用. objectName.prototype objectName 参数是对象的名称. 说明 用 prototype 属性提供对象的类的一组基本功能.对象的新实例"继承"赋予该对象原型的操作. 例如,要为 Array 对象添

js onclick事件传参讲解_javascript技巧

1.在页面中给方法传参数有两种方法 第一:onclick=cancel(id,patientId); 在js文件中定义cancel方法 如果要把当前对象传过去用onclick="cancel(this,id,patientId)" js中cancel(obj,id,patientId) 第二:在js中用jquery$(function(){ var patientId=$("a").attr("patientId"); }),在页面中<tr

js实现页面a向页面b传参的方法_javascript技巧

本文为大家分享了js实现页面a向页面b传参的具体方法,供大家参考,具体内容如下 方法一:使用HTML5本地化存储(localStorage) 组件(本地最大能存储5M数据)localStorage是本地永久存储数据,是cookie的优化 方法二:使用cookie将数据存放在客户的浏览器 (最大存储2M数据) 方法三:使用url传参 (将要传递的数据保存为一个存储变量,然后传给url)方法如下; a.html var app = {}; app.list = '123' app.test = '1

java web-js中父子页面传参的问题

问题描述 js中父子页面传参的问题 现在有三个文本框,对应三个按钮,调用如下方法,参数id是对应文本框的id,需要打开一个子页面,然后需要把子页面的值传到对应的文本框中,现在遇到的问题就是父页面怎么把文本框的id传个子页面,子页面如何获取id,并进行判断. 父页面中function如下: function openNewWindow(id){ window.open("<%=basePath%>user/showUserList.action#" + id,'linkman

javascript-js eval 执行结果问题

问题描述 js eval 执行结果问题 eval("11514116415056163151156506161646262616261666251") 执行结果为 -0.7783863211302893 请教是怎么执行出来的 解决方案 11514116415056163151156506161646262616261666251 这串是什么语句, 解决方案二: Math.sin(1142212162) 解决方案三: alert("11514116415056163151156

.net c# 传参 引用 ref 传入值类型

下面贴代码:  代码如下 复制代码 using System;  using System.Collections.Generic;  using System.Text;    namespace ClassObjectAndStringDiffDemo  {      class Program      {          static void Main(string[] args)          {              //作为传入参数的变量或对象,以下称呼为'原变量'或'

ExtJS按钮传参到JSP页面中默认执行JS函数

问题描述 ExtJS 界面有一个打印按钮,点击打印按钮传个参数param1到JSP页面中,然后在执行一个fn函数,执行打印过程,这块应该如何写呢,请大家给个思路 解决方案 点击buttion handler事件, 然后到action, 通过action返回到jsp页面, 在jsp页面可以执行其他的fn函数 ,然后window.print()即可

对象-JS里,如何理解函数的传参都是按值传递的?

问题描述 JS里,如何理解函数的传参都是按值传递的? <JavaScript高级程序设计>里讲到函数按值传递时,特意提了"在局部作用域中修改的对象会在全局作用域中反映出来,说明参数是按引用传递的"这个说法是错误的,随即Nicholas也给出了一个例子: function setName(obj){ obj.name = 'Nicholas'; obj = new Object(); obj.name = 'Greg'; } var person = new Object()