现在就是要实现这个索引功能
我的存储过程是这样写的
Create procedure [dbo].[GameInfo_ByChar] @FirstChar nvarchar(50) as begin select GameName from GameInformation where FirstChar=@FirstChar end
控制器是这样的
#region 根据首字母检索游戏 /// <summary> /// 根据首字母检索游戏 /// </summary> /// <returns></returns> public PartialViewResult SelectGameByChar() { IndexProvider indeProvid = new IndexSqlProvider(); DataTable dt = indeProvid.GameInfo_ByChar("A"); List<GameInfoModels> list=new List<GameInfoModels>(); foreach(DataRow row in dt.Rows) { GameInfoModels model = new GameInfoModels(); model.GameName = row["GameName"].ToString(); list.Add(model); } return PartialView(list); } #endregion
现在就是不知道控制器中的这个方法怎么写,同时用的是分部视图,结果会返回分部视图的。能不能用一个方法,根据26个字母分别从数据库中检索出相应数据,集体的力量是无穷的,希望大家帮帮忙,谢谢了
把所有数据查到客户端,然后通过 Npinyin库,将数据存入Dictionary<string,List<string>>。然后,随便整了~
看你在数据库已经存了首字母,那么Npinyin这步可以不要了。总之就是把整体数据拿到C#中处理,So Easy·
@幻天芒: 不太明白
@"程序猿"~在路上: 也就是把所有的数据全部查出来(首字母,名称)。然后再View中,通过Lambda表达式 来筛选~
foreach(var s in new string[]{"A","B","C"}) { var list=Model.Where(m=>m.首字母==s);//类似这样的写法 }
@幻天芒: 但是又怎么分别显示呢。比如
A 相关数据
B 相关数据
C 相关数据
...........
@幻天芒: 但是又怎么分别显示呢。比如
A 相关数据
B 相关数据
C 相关数据
...........
@"程序猿"~在路上:
@foreach(var s in new string[]{"ABC","DEF","C"}) { @foreach(var c in s) { var list=Model.Where(m=>m.首字母==c.ToString());//类似这样的写法 <b>@c</b> <ul> @foreach(var m in list) { <li>@m.Name</li> } </ul> } } //通过多重循环就能实现了~~~样式还能自定义
@幻天芒: 你用这么简单的方法就给结局了,实在厉害。刚开始想的,在在控制器方法里循环传参,想复杂了。高手就是高手,谢谢你!!!
@"程序猿"~在路上: 过奖~在公司垫底的!