现在的位置: 首页 > 综合 > 正文

动态生成列表

2013年04月20日 ⁄ 综合 ⁄ 共 2415字 ⁄ 字号 评论关闭

第一种    LIteral 标签循环

while (datareader2.Read())

        {
              i++;
              if (i<3)
            {
               img="<img src='images/new-000.gif'>";
            }
             else
            {
               img="";
            }
              num++;
              if (num%2==0)
              {
                  strclass="news_hy";
              }
              else
              {
                 strclass="news_hya";
              }
              sbDynamictraining.Append("<li class=\"");
             sbDynamictraining.Append(strclass);
              sbDynamictraining.Append("\">");
              sbDynamictraining.Append("<a href='");
              sbDynamictraining.Append((string)datareader2["href"]);
              sbDynamictraining.Append("'>");
              strtitle=(string)datareader2["titlte"];
             if (strtitle.Length>23)
              {
                  strtitle=strtitle.Substring(0,14) + "...";
              }
            sbDynamictraining.Append(strtitle);
            sbDynamictraining.Append(img);
            sbDynamictraining.Append("</a></li><li class='news_hy1'>[");
              
            DateTime str = Convert.ToDateTime(datareader2["times"]);
            sbDynamictraining.Append(str.ToString("yyyy-MM-dd"));

            sbDynamictraining.Append("]</li>"); 

LitetDynamictraining.Text = Convert.ToString(sbDynamictraining);

<li class="news_hya"><a href='zixun_view.php?id=37'>我厂2012年1月开始采用最...<img src='images/new-000.gif'></a></li><li class='news_hy1'>[2012-09-04]</li>

第二种  前台控件绑定数据库

<asp:Repeater ID="Repeater2" runat="server">
      <ItemTemplate>
            <li><span class="listLeft2"><a href="news<%#Eval("id") %>"><%# Common.Fun.GetFirstString(Eval("title").ToString(),36)%></a></span><span class="listRight2">(<%#Eval("compose_date","{0:yyyy-mm-dd}")%>)</span></li>
      </ItemTemplate>
</asp:Repeater>

Commom 下Fun.cs中的函数

  /// 文字截取
        /// </summary>
        /// <param name="stringToSub">要截取的字符串</param>
        /// <param name="length">截取要显示的字符串长度,超出该长度则截取</param>
        /// <returns>截取后的字符串</returns>

        public static string GetFirstString(string stringToSub, int length)
        {
            Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);//至少匹配一个中文
            char[] stringChar = stringToSub.ToCharArray();
            StringBuilder sb = new StringBuilder();
            int nLength = 0;
            for (int i = 0; i < stringChar.Length; i++)
            {
                if (regex.IsMatch((stringChar[i]).ToString()))
                {
                    nLength += 2;
                }
                else
                {
                    nLength = nLength + 1;
                }

                if (nLength <= length)
                {
                    sb.Append(stringChar[i]);
                }
                else
                {
                    break;
                }
            }
            if (sb.ToString() != stringToSub)
            {
                sb.Append("...");
            }
            return sb.ToString();
        }

抱歉!评论已关闭.