要实现这样一种效果,当我输入名称是中文时,代码名称会自动获取输入中文的首写字母:
实现思路是这样的:名称输入完毕候,当焦点移出时,代码名称自动获取。这其中引入汉字转拼音开源组件 NPinyin。
下面是我的实现代码:
<div class="bs-example"> <div class="control-group"> <label class="control-label" for="txtOperaName"> 名称:</label> <div class="controls"> <asp:TextBox ID="txtOperaName" runat="server" placeholder="名称" onBlur="javascript:lostFocus()"></asp:TextBox></div> </div>
调用LostFocus(),来实现我们的操作,其中用到了Ajax:
<script type="text/javascript"> functionlostFocus() { varpowerName = document.getElementById("<%=txtOperaName.ClientID%>").value; //中文直接获取,中文截取其的首写字母 $.ajax({ type: "Get", url: "../Handler/ChineseEnglishConvert.ashx?powerName="+ powerName, contentType: "application/json;charset=utf-8", dataType: "json", success: function (data) { //把获取到的转化的字符串,赋给代码名称控件 $("#txtUniqueId").val("QX_" + data); }, error: function(err) { alert(err); } }); } </script>
Ajax调用了一般处理程序,来进行中文首字母截取工作,其中要引入Npinyin.dll:
//F:\公司\02.Develop\MobileBusinessOutSite\MobileBusiness\MobileBusiness.PowerCenter.Manage\bin\NPinyin.dll using System; using System.Collections.Generic; using System.Linq; using System.Web; using NPinyin; using System.Text; usingMobileBusiness.Web.Library.Script; namespaceMobileBusiness.PowerCenter.Manage.ChineseConvert { ///<summary> /// Summary description for ChineseEnglishConvert ///</summary> public class ChineseEnglishConvert: IHttpHandler { public void ProcessRequest(HttpContextcontext) { //通过台获取需要中文字符串和特别是中文 stringgetString = context.Request["powerName"]; context.Response.ContentType = "text/plain"; //传过来的是中文需要转化英文,然后去首字母 Encodinggb2312 = Encoding.GetEncoding("GB2312"); stringconvertStringNew = Pinyin.ConvertEncoding(getString,Encoding.UTF8, gb2312); stringconvertStringNew1 = Pinyin.GetInitials(convertStringNew,gb2312); //把转化的数据以json的形式传过去。 stringstrJosn = JSONSerializerExecute.Serialize(convertStringNew1); context.Response.Write(strJosn); } public bool IsReusable { get { returnfalse; } } } }
这就是中文转化成拼音首写字母的全过程,大家可以在网上搜一些该软件,下载下来看一些就都明白了。
小结:这是我来公司之后,实现的第一个小功能,很高兴,呵呵。我知道这仅仅是开始,仅仅的困难的开始,仅仅是成长的开始;但是,我相信,只要自己坚信能行,不徘徊去行动,问题一定可以被解决了。不要忘记自己来公司的初衷:不抛弃,不放弃,勇往直前;自己的任务仍然是学习。还有一个体会就是:要想以后轻松松,红红火火,必须现在勤勤恳恳,多总结多积累。这是我跨年的一篇博客,送走过去,迎接未来,明天会更好!