//在aspxl文件中代码:使用...将自动循环处理其绑定的数据源内的数据.
<asp:Repeater id="RptAnswers" runat="server">
<ItemTemplate>
<asp:Repeater id="RptAnswers" runat="server">
<%# DataBinder.Eval(Container.DataItem, "newsTitle")%>
</ItemTemplate>
</asp:Repeater>
<table cellSpacing="0" cellPadding="0" width="390" border="0">
<asp:repeater id="clinicProgress" runat="server">
<ItemTemplate>
<tr>
<td class="k004" height="28">
<table cellSpacing="0" cellPadding="0" width="390" border="0">
<tr>
<td align="center" width="14" height="26"><span class="bl012">·</span></td>
<td width="331" height="26"><span class="k012">
<a style="color:#515050" href='../news/news3.aspx?moduleId=500&NewsID=<%# DataBinder.Eval(Container.DataItem, "newsId") %>&title=<%# System.Web.HttpUtility.UrlEncode(((string)DataBinder.Eval(Container.DataItem, "newsTitle")))%>' title='<%# DataBinder.Eval(Container.DataItem, "newsTitle") %>'>
<%# ((string)DataBinder.Eval(Container.DataItem, "newsTitle")).Substring(0, ((string)DataBinder.Eval(Container.DataItem, "newsTitle")).Length > 22 ? 22 : ((string)DataBinder.Eval(Container.DataItem, "newsTitle")).Length)%>
</a>
</span></td>
<td width="45"><span class="k012">[<%# DataBinder.Eval(Container.DataItem, "inDate","{0:MM-dd}")%>]</span></td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
</asp:repeater></table>
<!--国际.国内临床进展:结束-->
protected System.Web.UI.WebControls.Repeater RptAnswers;
DaoService subjectFac = new DaoService();
DataTable dt = subjectFac.GetList_ByPage("*",sqlselect,"inDate desc,newsID desc",1,1,15,out pagecount,out rowcount);
if(dt != null)
{
RptAnswers.DataSource = dt;
RptAnswers.DataBind();
}
//国际.国内临床进展 500
private void BindData()
{
dt4 = mynews.GetList_ByPage("*","moduleCode=500 and isPass=1","inDate desc,newsId desc",1,1,9,out pagecount,out rowscount);
clinicProgress.DataSource =dt4; // ds1.Tables[0].DefaultView;
clinicProgress.DataBind();
}
二:使用方法(注意点)
(1) 数据的绑定用
<%# DataBinder.Eval(Container.DataItem, "NewsID") %>
(2)只要放在合适的位置即可,(如作为超链接的参数传递)<a href='ExpertDetails.aspx?NewsID=<%# DataBinder.Eval(Container.DataItem, "NewsID") %>'
(3)可进行数据格式转换(如日期格式转换)
<%# ((DateTime)DataBinder.Eval(Container.DataItem, "editDate")).ToString("MM-dd") %>
(4)可限定字符串输出长度(可使用C#内置函数)
<%# ((string)DataBinder.Eval(Container.DataItem, "NewsTitle")).Substring(0, ((string)DataBinder.Eval(Container.DataItem, "NewsTitle")).Length > 10 ? 10 : ((string)DataBinder.Eval(Container.DataItem, "NewsTitle")).Length)%>
(5)可限定循环逻辑(Container.ItemIndex表示当前为第几次循环)
<%# ((Container.ItemIndex+1) %3 == 0 )? "</tr><tr><td height='8' width='660'colspan='13' bgcolor='#ffffff'></td></tr><tr>":"" %>
(6)页面间传递汉字时,注意要使用System.Web.HttpUtility.UrlEncode转换,放置乱码
href='../news/news3.aspx?moduleId=500&NewsID=<%# DataBinder.Eval(Container.DataItem, "newsId") %>&title=<%# System.Web.HttpUtility.UrlEncode(((string)DataBinder.Eval(Container.DataItem, "newsTitle")))%>'
两个疑问点:(使用的是vs2003)
1.
当代码中:<a></a>对应的href ="" 用双引号时,提示"未能在设计视图打开,在<% 值 %>快中,以不同方式将值括起来"...改为单引号则没有该提示
<a href='recordDetailInfo.aspx?newsId=<%# Int32.Parse(DataBinder.Eval(Container.DataItem, "newsId").ToString()) %> '> </a>
有时还会有这样的提示.....
2.有时vs2003自动为html添加了一些代码,(如在外层又加了table)--刚没能把问题重现