LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

asp.net Repeater如何按照特定字段绑定特定的内容

admin
2017年11月17日 0:14 本文热度 6335

一直觉得repeater不灵活,但是其实如果用后台拼接html内容的话,结合object类型,其实可以变化出多变的内容。这里有个需求需要根据不同的基金经理来绑定变动后的基金经理内容,每个基金经理还有特定的ID用来拼接处html超链接来跳转,困难来了,如果知道不同的内容的基金经理,是一个,二个或者多个呢,多个自然可以用逗号分隔,但是保存出来如何让repeater绑定呢!?这里我采用了eval来实现。具体来看代码:

首先要在实体类中定义一个标记字段和两个用来存放基金经理名的string数组或者仅仅是一个基金经理,那用object对象最好不过,对于前段和中间都隐藏其具体含义,最后强绑定转换就行,当然是根据标记字段来绑定。


[csharp] view plain copy
  1. public class FundSubscriptionPeriodTip  
  2.  {  
  3.      /// <summary>  
  4.      /// 公告日期  
  5.      /// </summary>  
  6.      public string NOTICEDATE { getset; }  
  7.   
  8.      /// <summary>  
  9.      /// 基金代码  
  10.      /// </summary>  
  11.      public string FCODE { getset; }  
  12.   
  13.      /// <summary>  
  14.      ///  基金名称  
  15.      /// </summary>  
  16.      public string SHORTNAME { getset; }  
  17.   
  18.      /// <summary>  
  19.      ///  认购起始日  
  20.      /// </summary>  
  21.      public string ISSBDATE { getset; }  
  22.   
  23.      /// <summary>  
  24.      ///  认购截止日  
  25.      /// </summary>  
  26.      public string ISSEDATE { getset; }  
  27.   
  28.      /// <summary>  
  29.      /// 验证备案时间  
  30.      /// </summary>  
  31.      public string CHECKTIME { getset; }  
  32.   
  33.      /// <summary>  
  34.      /// 封闭运作期  
  35.      /// </summary>  
  36.      public string CLOSETIME { getset; }  
  37.   
  38.    
  39.   
  40.      /// <summary>  
  41.      ///  基金经理代码  
  42.      /// </summary>  
  43.      public string JJJLID { getset; }  
  44.   
  45.      /// <summary>  
  46.      ///  基金经理姓名  
  47.      /// </summary>  
  48.      public string JJJL { getset; }  
  49.   
  50.   
  51.      /// <summary>  
  52.      /// 认购募集期  
  53.      /// </summary>  
  54.      public string ISSEDATEISSBDATE { getset; }  
  55.   
  56.      /// <summary>  
  57.      ///  基金经理姓名1  
  58.      /// </summary>  
  59.      public  object JJJLArray { getset; }  
  60.   
  61.   
  62.     
  63.   
  64.      /// <summary>  
  65.      ///  基金经理代码1  
  66.      /// </summary>  
  67.      public object JJJLIDArray { getset; }  
  68.   
  69.      /// <summary>  
  70.      /// 基金经理数量  
  71.      /// </summary>  
  72.      public string FundMangerNumber { getset; }  
  73.                        
  74.  }  

  数据访问层这边就根据不同的基金经理的数量来分隔或者直接赋值:

[csharp] view plain copy
  1. #region 基金认购期  
  2.  public static ResultInfo<List<FundSubscriptionPeriodTip>> GetFundSubscriptionPeriodTip()  
  3.  {  
  4.      ResultInfo<List<FundSubscriptionPeriodTip>> ret = new ResultInfo<List<FundSubscriptionPeriodTip>>();  
  5.   
  6.      try  
  7.      {  
  8.          using (OracleConnection Conn = new OracleConnection(conn))  
  9.          {  
  10.              string sql;  
  11.              OracleCommand Cmd;  
  12.   
  13.   
  14.              sql = " select noticedate, " +  
  15.                    " fcode," +  
  16.                    " shortname, " +  
  17.                    " ISSBDATE, " +  
  18.                    " ISSEDATE, " +  
  19.                   "''7个工作日'' checktime,"+  
  20.                   "''一般3个月内'' closetime,"+  
  21.                    " jjjlid," +  
  22.                    " jjjl " +  
  23.                    " from  fundadmin.fund_jbxx " +  
  24.                    " where eisdel=0 and noticedate=to_date(sysdate)";  
  25.   
  26.   
  27.   
  28.   
  29.   
  30.   
  31.              Cmd = new OracleCommand(sql, Conn);  
  32.              //Cmd.Parameters.Add(new OracleParameter(":FCODE", fcode));  
  33.   
  34.   
  35.              Conn.Open();  
  36.              OracleDataAdapter oda = new OracleDataAdapter(Cmd);  
  37.              DataTable dtb = new DataTable();  
  38.              oda.Fill(dtb);  
  39.              List<FundSubscriptionPeriodTip> miLst = new List<FundSubscriptionPeriodTip>();  
  40.              foreach (DataRow row in dtb.Rows)  
  41.              {  
  42.                  FundSubscriptionPeriodTip entity = new FundSubscriptionPeriodTip();  
  43.   
  44.                  entity.NOTICEDATE = Convert.ToDateTime((row["NOTICEDATE"])).ToShortDateString();  
  45.   
  46.                  entity.SHORTNAME = FormatTools.ParseString(row["SHORTNAME"]);  
  47.                  entity.FCODE = FormatTools.ParseString(row["FCODE"]);  
  48.                  entity.ISSBDATE = Convert.ToDateTime(row["ISSBDATE"]).ToShortDateString();  
  49.                  entity.ISSEDATE = Convert.ToDateTime((row["ISSEDATE"])).ToShortDateString();   
  50.                  entity.JJJLID=FormatTools.ParseString(row["JJJLID"]);  
  51.                  entity.JJJL=FormatTools.ParseString(row["JJJL"]);  
  52.                  entity.CHECKTIME = FormatTools.ParseString(row["CHECKTIME"]);  
  53.                  entity.CLOSETIME = FormatTools.ParseString(row["CLOSETIME"]);  
  54.                  //entity.ISSEDATEISSBDATE = (entity.ISSEDATE - entity.ISSBDATE).TotalDays.ToString();  
  55.   
  56.               <span style="color:#ff0000;">   if (!string.IsNullOrWhiteSpace(entity.JJJLID))  
  57.                      if (entity.JJJLID.Contains(","))  
  58.                      {  
  59.                          entity.JJJLIDArray = entity.JJJLID.Split('','');  
  60.                          entity.FundMangerNumber = "1";  
  61.                      }  
  62.                      else  
  63.                      {  
  64.                          entity.JJJLIDArray = entity.JJJLID.ToString();  
  65.                          entity.FundMangerNumber = "0";  
  66.                      }  
  67.                  if (!string.IsNullOrWhiteSpace(entity.JJJL))  
  68.                      if (entity.JJJL.Contains(","))  
  69.                        entity.JJJLArray = entity.JJJL.Split('','');  
  70.                       
  71.                      else  
  72.                          entity.JJJLArray = entity.JJJL.ToString();  
  73. an>  
  74.                  miLst.Add(entity);  
  75.              }  
  76.   
  77.              ret.SetValue(miLst);  
  78.              if (miLst.Count == 0)  
  79.              {  
  80.                  ret.Message = "未查询到任何记录信息!";  
  81.                  ret.SetValue(new List<FundSubscriptionPeriodTip>());  
  82.              }  
  83.              Conn.Close();  
  84.          }  
  85.      }  
  86.      catch (Exception e)  
  87.      {  
  88.          if (e != null)  
  89.              ret.Message += e.Message;  
  90.      }  
  91.   
  92.      return ret;  
  93.   
  94.  }  
  95.  #endregion  

上面红色部分是关键,后面是用前段来调用:

[html] view plain copy
  1. <tr>  
  2.                <td class="w200">  基金经理姓名  </td>  
  3.                <td class="pr200">  
  4.   
  5.                     <%--   <a href="http://fund.eastmoney.com/manager/<%#Eval("JJJLIDArray[0]")%>.html" target="_blank"> <%#Eval("JJJLArray[0]")%></a>,<a href="http://fund.eastmoney.com/manager/<%#Eval("JJJLIDArray[1]")%>.html" target="_blank"> <%#Eval("JJJLArray[1]")%></a>--%>  
  6.                       <%#IsFundMangerNumber(Eval("FundMangerNumber").ToString(),Eval("JJJLIDArray"),Eval("JJJLArray"))%>  
  7.                   
  8.                    
  9.                </td>  
  10.            </tr>  


后台代码就实际来拼接html内容:

[csharp] view plain copy
  1. public string IsFundMangerNumber(string FundMangerNumber, object JJJLIDArray, object JJJLArray)  
  2.        {  
  3.            string Show="";  
  4.            if (FundMangerNumber == "1")  
  5.            {  
  6.                for (int i = 0; i < ((string[])JJJLArray).Count(); i++)  
  7.                {  
  8.                    Show = Show+" <a href=\"http://fund.eastmoney.com/manager/" + ((string[])JJJLIDArray)[i] + ".html\" target=\"_blank\">" + ((string[])JJJLArray)[i] + "</a>";  
  9.                    if (i < (((string[])JJJLArray).Count()-1))  
  10.                        Show = Show + ",";  
  11.                }  
  12.            }  
  13.            else  
  14.            {  
  15.                Show = Show + "<a href=\"http://fund.eastmoney.com/manager/" + JJJLIDArray + ".html\" target=\"_blank\">" + JJJLArray + "</a>";  
  16.   
  17.            }  
  18.                return Show;  
  19.        }    

该文章在 2017/11/17 0:14:43 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved