展示内容补全,可点击查看全代码
/*简单代码,看懂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>