牛骨文教育服务平台(让学习变的简单)
博文笔记

JavaScript eval定义动态变量名及赋值教程

创建时间:2017-04-25 投稿人: 浏览次数:2022

CSDN展示内容补全,可点击查看全代码

/*简单代码,看懂eval动态变量定义的创建和使用*/
<html>
<head>

    <script type="text/javascript">
        eval("var input_id1;");

        input_id1 = 100;
        
        alert(input_id1);
    </script>

</head>
</html>

/*ASP.NET eval更强大的使用案例*/
/// <summary>
/// 后台定义动态变量名
/// </summary>
public void BindAutoComplete(string AjaxCompleteID, string AjaxCompleteText, string Placeholder, string ColArray, string TableName, string SelectorString, string SortExpression, string FilterString, string FilterColumnString, int TopCount, string Width)
{
    ViewState["ucAjaxComplete_ColArray_" + this.AjaxComplete.ClientID] = ColArray;
    ViewState["ucAjaxComplete_TableName_" + this.AjaxComplete.ClientID] = Utility.Web.Security.DESEncrypt(TableName);
    ViewState["ucAjaxComplete_SelectorString_" + this.AjaxComplete.ClientID] = Utility.Web.Security.DESEncrypt(SelectorString);
    ViewState["ucAjaxComplete_SortExpression_" + this.AjaxComplete.ClientID] = Utility.Web.Security.DESEncrypt(SortExpression);
    ViewState["ucAjaxComplete_FilterString_" + this.AjaxComplete.ClientID] = Utility.Web.Security.DESEncrypt(FilterString);
    ViewState["ucAjaxComplete_FilterColumnString_" + this.AjaxComplete.ClientID] = Utility.Web.Security.DESEncrypt(FilterColumnString);
    ViewState["ucAjaxComplete_TopCount_" + this.AjaxComplete.ClientID] = TopCount;
    ViewState["ucAjaxComplete_Width_" + this.AjaxComplete.ClientID] = Width;
    ViewState["ucAjaxComplete_AjaxCompleteText_" + this.AjaxComplete.ClientID] = AjaxCompleteText;
    ViewState["ucAjaxComplete_Placeholder_" + this.AjaxComplete.ClientID] = Placeholder;
    ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID] = "ajaxComplete" + AjaxCompleteID;
    ViewState["ucAjaxComplete_CallBackFunctionName_" + this.AjaxComplete.ClientID] = "ajaxComplete" + AjaxCompleteID + "CallBack";
    ViewState["ucAjaxComplete_KeyTabCallBackFunctionName_" + this.AjaxComplete.ClientID] = "ajaxComplete" + AjaxCompleteID + "KeyTabCallBack";
}

/// <summary>
/// JavaScript读取后台变量并写入到eval模块中
/// JavaScript 小知识点:JavaScript换行拼接使用反斜杠 
/// </summary>
<script type="text/javascript">
    eval("var <%=ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID]%>;");
    $(document).ready(function () {
        var strAjaxComplete = ("
                var col = [], coltext = "<%=ViewState["ucAjaxComplete_ColArray_" + this.AjaxComplete.ClientID]%>", colsplit;
                colsplit = coltext.split(",");
                for (var i = 0; i < colsplit.length; i++) {
                    col.push(colsplit[i]);
                }
                <%=ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID]%> = $("#<%=this.AjaxComplete.ClientID%>").tautocomplete({
                    width: "<%=ViewState["ucAjaxComplete_Width_" + this.AjaxComplete.ClientID]%>",
                    placeholder: "<%=ViewState["ucAjaxComplete_Placeholder_" + this.AjaxComplete.ClientID]%>",
                    cleanspelchar: true,
                    barcode:false,
                    columns: col,
                    data: function () {
                        var filterData = [];
                        $.ajax({
                            url: "/WebServices/AutoComplete.asmx/GetAjaxCompleteData",
                            type: "POST",
                            dataType: "json",
                            async: false,
                            data: { Col_1: "<%=ViewState["ucAjaxComplete_TableName_" + this.AjaxComplete.ClientID]%>", Col_2:  "<%=ViewState["ucAjaxComplete_SelectorString_" + this.AjaxComplete.ClientID]%>", Col_3:  "<%=ViewState["ucAjaxComplete_SortExpression_" + this.AjaxComplete.ClientID]%>", Col_4:  "<%=ViewState["ucAjaxComplete_FilterString_" + this.AjaxComplete.ClientID]%>", Col_5:  "<%=ViewState["ucAjaxComplete_FilterColumnString_" + this.AjaxComplete.ClientID]%>", Col_6: <%=ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID]%>.searchdata(), Col_7:  <%=ViewState["ucAjaxComplete_TopCount_" + this.AjaxComplete.ClientID]%> },
                            success: function (data) {
                                for (var i = 0; i < data.length; i++) {
                                    filterData.push(data[i]);
                                }
                            }
                        });
                        return filterData;
                    },
                    onchange: function () {
                        <%=ViewState["ucAjaxComplete_CallBackFunctionName_" + this.AjaxComplete.ClientID]%>(<%=ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID]%>);
                    },
                    onkeytab: function () {
                        <%=ViewState["ucAjaxComplete_KeyTabCallBackFunctionName_" + this.AjaxComplete.ClientID]%>(<%=ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID]%>);
                    }
                });
                <%=ViewState["ucAjaxComplete_AjaxCompleteID_" + this.AjaxComplete.ClientID]%>.setdata("<%=ViewState["ucAjaxComplete_AjaxCompleteText_" + this.AjaxComplete.ClientID] %>");
        ");
        eval(strAjaxComplete);
    });
</script>

/// <summary>
/// JavaScript编译后代码
/// </summary>
<script type="text/javascript">
    eval("var ajaxComplete;");
    $(document).ready(function () {
        var strAjaxComplete = ("
                var col = [], coltext = "[物资名称],[规格],[条码]", colsplit;
                colsplit = coltext.split(",");
                for (var i = 0; i < colsplit.length; i++) {
                    col.push(colsplit[i]);
                }
                ajaxComplete = $("#ctl00_cph_ucInDepotEdit_ucAjaxAutocompleteTable_AjaxComplete").tautocomplete({
                    width: "300px",
                    placeholder: "请输入物资名称、规格或条码查询",
                    cleanspelchar: true,
                    barcode:false,
                    columns: col,
                    data: function () {
                        var filterData = [];
                        $.ajax({
                            url: "/WebServices/AutoComplete.asmx/GetAjaxCompleteData",
                            type: "POST",
                            dataType: "json",
                            async: false,
                            data: { Col_1: "6E3A20C557A03736AF68C38C991B2454C14D3B264E98D297", Col_2:  "0B982EC405AA874DB04ED8057719223FF996393B13F1259C24A56B8E40233DF659E78160C6B35AC2991409C9B01FDABD", Col_3:  "0B982EC405AA874D9BE69B1002DF9D65", Col_4:  "B71AE2D1C2C554260035E8E015084A8427209F3167FAE41232C3319177633C05", Col_5:  "6853E3874A3A6B264C1DC36088095A25", Col_6: ajaxComplete.searchdata(), Col_7:  10 },
                            success: function (data) {
                                for (var i = 0; i < data.length; i++) {
                                    filterData.push(data[i]);
                                }
                            }
                        });
                        return filterData;
                    },
                    onchange: function () {
                        ajaxCompleteCallBack(ajaxComplete);
                    },
                    onkeytab: function () {
                        ajaxCompleteKeyTabCallBack(ajaxComplete);
                    }
                });
                ajaxComplete.setdata("");
        ");
        eval(strAjaxComplete);
    });
</script>

            
                
				
			
		
        	
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。