A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨伟芬 中级黑马   /  2012-4-8 09:11  /  2441 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在 combox中 放入一些名字,然后把combox的DropDownStyle属性设置为 DropDownList,这样运行后 就可以在文本处输入中文字来检索,但有的姓氏好像不能检索,这是其一;我还想把其中的姓名 按照 姓名笔画或是姓名的拼音进行降序或是升序排列,这是第二个问题;求教一下各位!谢谢

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

4 个回复

正序浏览
楼主表述之事与本人无关,只是本着“看贴回贴,繁荣网络、利人利己”的原则,为“保增长、扩内需、调结构,促民生”作出贡献,顺便赚3分。
回复 使用道具 举报
张云静 发表于 2012-4-8 13:28
第一个问题,好像确实是这样,你可以为每个员工名字建一个索引,比如说键值对Dictionary(没试过)
第二个 ...

谢谢啊 看起来有点困难,但还能看懂!
回复 使用道具 举报
本帖最后由 张云静 于 2012-4-12 10:10 编辑

第一个问题,好像确实是这样,你可以为每个员工名字建一个索引,比如说键值对Dictionary<int,EmpName>(没试过)
第二个问题一般方法是定义一个汉字符表,然后按字母顺序排列,当用户输入的时候检索这个字符表
///   <summary>
///   汉字转拼音缩写
///   </summary>
///   <param   name= "str "> 要转换的汉字字符串 </param>
///   <returns> 拼音缩写 </returns>
public   string   GetPYString(string   str)
{
string   tempStr   =   " ";
foreach(char   c   in   str)
{
if((int)c   > =   33   &&   (int)c   <=126)
{//字母和符号原样保留
tempStr   +=   c.ToString();
}
else
{//累加拼音声母
tempStr   +=   GetPYChar(c.ToString());
}
}
return   tempStr;
}

///   <summary>
///   取单个字符的拼音声母
///   </summary>
///   <param   name= "c "> 要转换的单个汉字 </param>
///   <returns> 拼音声母 </returns>
public   string   GetPYChar(string   c)
{
byte[]   array   =   new   byte[2];
array   =   System.Text.Encoding.Default.GetBytes(c);
int   i   =   (short)(array[0]   -   '\0 ')   *   256   +   ((short)(array[1]   -   '\0 '));
if   (   i   <   0xB0A1)   return   "* ";
if   (   i   <   0xB0C5)   return   "a ";
if   (   i   <   0xB2C1)   return   "b ";
if   (   i   <   0xB4EE)   return   "c ";
if   (   i   <   0xB6EA)   return   "d ";
if   (   i   <   0xB7A2)   return   "e ";
if   (   i   <   0xB8C1)   return   "f ";
if   (   i   <   0xB9FE)   return   "g ";
if   (   i   <   0xBBF7)   return   "h ";
if   (   i   <   0xBFA6)   return   "g ";
if   (   i   <   0xC0AC)   return   "k ";
if   (   i   <   0xC2E8)   return   "l ";
if   (   i   <   0xC4C3)   return   "m ";
if   (   i   <   0xC5B6)   return   "n ";
if   (   i   <   0xC5BE)   return   "o ";
if   (   i   <   0xC6DA)   return   "p ";
if   (   i   <   0xC8BB)   return   "q ";
if   (   i   <   0xC8F6)   return   "r ";
if   (   i   <   0xCBFA)   return   "s ";
if   (   i   <   0xCDDA)   return   "t ";
if   (   i   <   0xCEF4)   return   "w ";
if   (   i   <   0xD1B9)   return   "x ";
if   (   i   <   0xD4D1)   return   "y ";
if   (   i   <   0xD7FA)   return   "z ";

return   "* ";

}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你把数据放到sql 数据库中,然后在数据库中排序,再分不同情况进行数据加载!{:soso_e150:}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马