首页 新闻 会员 周边

求高手帮一下忙

0
悬赏园豆:5 [已解决问题] 解决于 2014-01-22 20:47

现在有如下结果集,是关于字典的。

简单写了DAL和BLL,

DAL:

public List<zidian_content> GetList(string bushou)
        {
            DataTable table = SqlHelper.ExecuteDataTable("select * from sm_zidian where bushou=@bushou", new SqlParameter("@bushou", bushou));
            List<zidian_content> list = new List<zidian_content>();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                DataRow row = table.Rows[i];
                zidian_content model = new zidian_content();
                model.id = (int)row["id"];
                model.zi = (string)row["zi"];
                model.py = (string)row["py"];
                model.pinyin = (string)row["pinyin"];
                model.wubi = (string)row["wubi"];
                model.bihua = (string)row["bihua"];
                model.bushou = (string)row["bushou"];
                model.jianjie = (string)row["jianjie"];
                model.xiangjie = (string)row["xiangjie"];
                model.hits = (int)row["hits"];
                list.Add(model);
            }
            return list;
        }


BLL中很简单:

public List<zidian_content> GetList(string bushou)
        {
            return dal.GetList(bushou);
        }
        #endregion


然后在前台.aspx.cs中写了一个方法,也很简单

protected string bushou;
protected List<zidian_content> list = new List<zidian_content>();
if(!IsPostBack)
            {
                list=list = new zidian_content_bll().GetList(bushou);
            }


前台循环出来:

<%foreach(var item in list){ %>
        <a href="/view/<%=item.id %>"><%=item.zi %>></a>
    <%} %>

这样简单做出来后如下显示:

可是现在的要求是做到像下面这样的列表显示

橡这样的问题,应该 从哪里开始改造,想了一下午, 都没头绪 ,所以来这里求救 了。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2014-01-21 21:30
< >
分享
最佳答案
0

1) .aspx.cs 里面

1 protected string bushou;
2 protected List<zidian_content> list = new List<zidian_content>();
3 List<int> bihuas = null;
4 if(!IsPostBack)
5             {
6                 list=list = new zidian_content_bll().GetList(bushou);
7                 bihuas = (from o in list orderby o.bihua ascending select o.bihua).Distinct().ToList();
8             }        

2)前台循环出来:

1 <%foreach(int bihua in bihuas){
2 List<Users> items = list.Where(o => o.id == bihua).ToList();
3 %>
4     外部笔画数<%= bihua%>5     <%foreach(var item in items){%>
6         <a href="/view/<%=item.id %>"><%=item.zi %>></a>
7 <%}%>
8 <%} %>

思路和代码。

收获园豆:5
Jerry柯 | 菜鸟二级 |园豆:496 | 2014-01-22 11:11

原来LINQ这么优美。

DZCMS | 园豆:5 (初学一级) | 2014-01-22 20:47
其他回答(2)
0

用css控制啊    用ul标签可以达到你要的效果

小三哥哥。 | 园豆:202 (菜鸟二级) | 2014-01-21 21:36

部外笔画数1 还是没看明白啊。

我上面截图是 部外笔画数1,简单点也可以用笔画数1,就是说笔画数1的有几个汉字,然后显示在一行,笔画数为2的有几个汉字,显示在一行。

 

我的想法是还要对结果集再进行操作,但是怎么写没有思路了。

支持(0) 反对(0) DZCMS | 园豆:5 (初学一级) | 2014-01-21 22:14

@abc54288: ...这样就不知道了,页面怎么判断你的字有多少个笔画,除非你在后台先整理好。

支持(0) 反对(0) 小三哥哥。 | 园豆:202 (菜鸟二级) | 2014-01-22 10:10

@abc54288: 我看了你的数据库之后,你可以跟你你数据库的字段笔画数作为在页面的循环条件,循环出笔画数是1的字,我学的是java,只能写一段java代码给你看看,你自己看着找思路,例如:

<c:foreach items="${list}" var ="bean" varStatus="status">
    <c:if test="${bean.bihuashu==(status.index+1)}">
        外部笔画数${status.index+1}:${bean.word}
    </c:if>
</c:foreach>

这段代码能分出你的笔画数是几的字,但是如果有两个笔画数是1的他还是会循环两次,不会直接加到同笔画数行的后面。要做到你那种效果还是要多判断循环几次才可以

支持(0) 反对(0) 小三哥哥。 | 园豆:202 (菜鸟二级) | 2014-01-22 10:29
0

根据部首找到所有的字 然后用Dictionary<string,int>  int:笔画数 string 字

wolfy | 园豆:2636 (老鸟四级) | 2014-01-22 10:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册