/*简单代码,看懂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> 作者:China_Lzw 链接:https://blog.csdn.net/qq285679784/article/details/70670025 来源:CSDN 著作权归作者所有,转载请联系作者获得授权,切勿私自转载。