JS关键字变色实现思路及代码


Posted in Javascript onFebruary 21, 2013

1.替换关键字,对字体变色

public static string ReplaceRed(string strtitle, string redkey) 
{ 
if (redkey == "" || redkey == null) 
{ 
return strtitle; 
} 
else 
strtitle = strtitle.Replace(redkey, " <font color='#ff0000'>" + redkey + " </font>"); 
return strtitle; 
}

该方法缺点是:点字符是含大小写的英文时,变色后统一替换为了关键字的大小写,体验不好。
2.用正则,CSS背景变色
protected string HighlightText(string inputText,string searchWord) 
{ 
System.Text.RegularExpressions.Regex expression = new System.Text.RegularExpressions.Regex(searchWord.Replace(" ", "|"), System.Text.RegularExpressions.RegexOptions.IgnoreCase); 
return expression.Replace(inputText,new System.Text.RegularExpressions.MatchEvaluator(ReplaceKeywords)); 
} 
public string ReplaceKeywords(System.Text.RegularExpressions.Match m) 
{ 
return "<span class='highlightTxtSearch'>" + m.Value + "</span>";//关键字背景加色 
//return "<font color='#ff0000'>" + m.Value + "</font>";//关键字变色 
}

该方法可结合前台JS调用
<style type="text/css"> 
.highlightTxtSearch 
{ 
background-color:Yellow; 
} 
</style>

<script type="text/javascript"> 
$(function () { 
$('#tt').datagrid({ 
url: '@Url.Content("~/Domain/LoadDomainAdmin")', 
width: "90%", 
height: 400, 
fitColumns: true, 
nowrap: false, 
idField: 'UserID', 
pagination: true, 
pageNumber: 1, 
singleSelect: true, 
frozenColumns: [[{ field: 'radio', formatter: function (value, row, index) { 
return '<input type="radio" name="rd_action" />'; 
} 
}]], 
columns: [[ 
{ field: 'UserID', title: 'UserID', width: 260, hidden: 'true' }, 
{ field: 'LoginName', title: '@ViewBag.LoginName', width: 180, align: 'left', formatter: function (data) { 
//return "<div class='hiddenFontGommom' style='text-align:left;'>" + data + "</div>"; 
return GetNewData(data); 
} 
}, 
{ field: 'FirstName', title: '@ViewBag.FirstName', width: 120, align: 'left', formatter: function (data) { 
//return "<div style='text-align:left;' title=" + data + ">" + data + "</div>"; 
return GetNewData(data); 
// var keyword = $.trim($("#txtInfo").val()) == '@ViewBag.SearchText' ? "" : $.trim($("#txtInfo").val()); 
// if (keyword == "") { 
// return "<div style='text-align:left;' title=" + data + ">" + data + "</div>"; 
// } 
// else { 
// var returnData = ""; 
// $.ajax({ 
// type: "POST", 
// url: '@Url.Content("~/Domain/HighlightText")' + "?inputText=" + data + "&searchWord=" + keyword, 
// async: false, 
// success: function (newdata) { 
// //重新赋值 
// returnData = newdata; 
// }, 
// error: function () { 
// //不修改returnData值 
// } 
// }); 
// return "<div style='text-align:left;' title=" + data + ">" + returnData + "</div>"; 
// } 
} 
}, 
{ field: 'LastName', title: '@ViewBag.LastName', width: 120, align: 'left', formatter: function (data) { 
//return "<div style='text-align:left;' title=" + data + ">" + data + "</div>"; 
return GetNewData(data); 
} 
}, 
{ field: 'Email', title: '@ViewBag.Email', width: 180, align: 'left', formatter: function (data) { 
return "<div class='hiddenFontGommom' style='text-align:left;' title=" + data + ">" + data + "</div>"; 
} 
}, 
// { field: 'Domian', title: '@ViewBag.Domian', width: 180, align: 'left', formatter: function (data) { 
// return "<div style='text-align:left;' title=" + data + ">" + data + "</div>"; 
// } 
// }, 
// { field: 'Role', title: '@ViewBag.Role', width: 180, align: 'left', formatter: function (data) { 
// return "<div style='text-align:left;' class='hiddenFontGommom' title=" + data.replace(" ", "").replace(" ", "") + ">" + data + "</div>"; 
// } 
// }, 
// {field: 'IsEnabled', title: '@ViewBag.State', align: 'center', width: 150, formatter: function (val) { 
// if (val == true) 
// return "<div class='devicetypes_a_box'>True</div>"; 
// else 
// return "<div class='devicetypes_a_box'>False</div>"; 
// } 
// } 
]], 
onBeforeLoad: function (row, param) { 
//移除头部批量勾选框 
$(".datagrid-header-check input").css("visibility", "hidden"); 
//隐藏分页 
//$(".datagrid-pager").css("display", "none"); 
//$(".datagrid-pager").removeClass("datagrid-pager"); 
return true; 
}, 
onLoadSuccess: function (data) { 
if (data.rows.length == 0) { 
$(".datagrid-view2 .datagrid-body").html("<div style='text-align:center; margin-top:0px; height:50px;'>" + userManage_index_SearchMsg + "</div>"); 
} 
else { 
$('#tt').datagrid('selectRecord', '@ViewBag.AdminId'); 
$("input[name=rd_action]", $("div.datagrid-view1 tr.datagrid-row-selected")).attr("checked", "checked"); 
} 
$("div.datagrid-header-check input").removeAttr("checked"); //重新加载时去掉复选框的选中 
//$('#tt').datagrid('unselectAll'); 
var queryParams = $('#tt').datagrid('options').queryParams; 
queryParams.IsSerach = "NO"; 
queryParams.DomainId = $("#xDomainId").val(); 
$('#tt').datagrid('options').queryParams = queryParams; 
}, 
// onSelect: function () { 
// ChSelect(); 
// }, 
// onUnselect: function () { 
// ChSelect(); 
// }, 
onClickRow: function (row) { 
$("input[name=rd_action]", $("div.datagrid-view1 tr.datagrid-row-selected")).attr("checked", "checked"); 
} 
}); 
var p = $('#tt').datagrid('getPager'); 
$(p).pagination({ 
pageNumber: 1, 
pageSize: 10, //每页显示的记录条数,默认为10 
pageList: [5, 10, 15], //可以设置每页记录条数的列表 
displayMsg: "" //'当前显示 {from} - {to} 条记录 共 {total} 条记录', 
}); 
$("#btn_search").click(function () { 
$("#importErrorMsg").find("div").css("display", "none"); 
var queryParams = $('#tt').datagrid('options').queryParams; 
queryParams.FullName = $.trim($("#txtInfo").val()) == '@ViewBag.SearchText' ? "" : $.trim($("#txtInfo").val()); 
queryParams.IsSerach = "YES"; 
$('#tt').datagrid('options').queryParams = queryParams; 
$("#tt").datagrid('reload'); 
var p = $('#tt').datagrid('getPager'); 
$(p).pagination({ 
pageNumber: 1, 
pageList: [5, 10, 15], //可以设置每页记录条数的列表 
displayMsg: "" //'当前显示 {from} - {to} 条记录 共 {total} 条记录', 
}); 
}) 
$(".pagination-num").keydown(function (event) { 
var event = event || window.event; 
if (event.keyCode == 13) 
event.keyCode = 9; 
if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 8 && event.keyCode != 46 && (event.keyCode < 96 || event.keyCode > 105)) { 
event.preventDefault(); 
event.returnValue = false; 
} 
}); 
$(".datagrid-cell").css("textAlign", "center"); //表头内容居中 
}); 
function ChSelect() { 
// var row = $('#tt').datagrid('getChecked'); 
// var rows = $('#tt').datagrid('getRows'); 
// row.length == rows.length ? $("div.datagrid-header-check input").attr("checked", true) : $("div.datagrid-header-check input").removeAttr("checked"); 
} 
function GetNewData(data) { 
var keyword = $.trim($("#txtInfo").val()) == '@ViewBag.SearchText' ? "" : $.trim($("#txtInfo").val()); 
if (keyword == "") { 
return "<div style='text-align:left;' title=" + data + ">" + data + "</div>"; 
} 
else { 
var returnData = ""; 
$.ajax({ 
type: "POST", 
url: '@Url.Content("~/Domain/HighlightText")' + "?inputText=" + data + "&searchWord=" + keyword, 
async: false, 
success: function (newdata) { 
//重新赋值 
returnData = newdata; 
}, 
error: function () { 
//不修改returnData值 
} 
}); 
return "<div style='text-align:left;' title=" + data + ">" + returnData + "</div>"; 
//title中的data要和后面的data分开,不要后台返回的会让title中的data也跟着改变 
} 
} 
</script>
Javascript 相关文章推荐
javascript开发技术大全-第1章javascript概述
Jul 03 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
Nov 30 Javascript
JS判定是否原生方法
Jul 22 Javascript
IE8中动态创建script标签onload无效的解决方法
Dec 22 Javascript
jQuery和AngularJS的区别浅析
Jan 29 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
jQuery实现底部浮动窗口效果
Sep 07 Javascript
React Native中Navigator的使用方法示例
Oct 13 Javascript
Vuex实现计数器以及列表展示效果
Mar 10 Javascript
原生JS封装_new函数实现new关键字的功能
Aug 12 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
May 01 Javascript
js数组Array sort方法使用深入分析
Feb 21 #Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 #Javascript
jquery实现每个数字上都带进度条的幻灯片
Feb 20 #Javascript
javascript通过class来获取元素实现代码
Feb 20 #Javascript
javascript自适应宽度的瀑布流实现思路
Feb 20 #Javascript
Raphael带文本标签可拖动的图形实现代码
Feb 20 #Javascript
IE关闭时判断及AJAX注销案例学习
Feb 18 #Javascript
You might like
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
php xml常用函数的集合(比较详细)
2013/06/06 PHP
处理单名多值表单的详解
2013/06/08 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
JavaScript内核之基本概念
2011/10/21 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
机器学习实战之knn算法pandas
2019/06/22 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
升职自荐信范文
2013/10/05 职场文书
招商业务员岗位职责
2013/12/16 职场文书
运动会广播稿60字
2014/01/15 职场文书
公司合作意向书
2014/04/01 职场文书
五年级学生评语
2014/04/22 职场文书
双方协议书
2014/04/22 职场文书
离婚协议书怎么写
2014/09/12 职场文书
2014年保管员工作总结
2014/11/18 职场文书