读书人

Repeater 能不能第一条显示图片其他

发布时间: 2011-12-30 23:30:45 作者: rapoo

Repeater 能不能第一条显示图片,其他的不显示图片
如下:
<asp:Repeater ID= "xcztRepeater " runat= "server " EnableViewState= "false " OnItemCommand= "xcztRepeater_ItemCommand ">
<ItemTemplate>
<table width= "200 " height= "275 " border= "0 " cellpadding= "0 " cellspacing= "0 ">
<tr>
<td style= "height: 90px "> <div align= "center "> <img src= ' <%# DataBinder.Eval(Container.DataItem, "pic ").ToString().Trim()%> ' width= "186 " height= "72 "> </div> </td>
</tr>
<tr>
<td height= "5 "> </td>
</tr>
<tr>
<td height= "180 " valign= "top ">
<table width= "200 " border= "0 " cellspacing= "0 " cellpadding= "0 ">
<tr>
<td width= "20 " height= "20 "> <div align= "center " class= "b1 "> </div> </td>
<td width= "180 " height= "20 "> <span class= "kuan_01 "> <a href= "nrjs.aspx?id= <%# DataBinder.Eval(Container.DataItem, "info_id ").ToString().Trim()%> " target= "_blank "> <%# len.GetLen(DataBinder.Eval(Container.DataItem, "title ").ToString().Trim(),13) %> </a> </span> </td>
</tr>
</table>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>

第一条的时候显示:
<table width= "200 " height= "275 " border= "0 " cellpadding= "0 " cellspacing= "0 ">


<tr>
<td style= "height: 90px "> <div align= "center "> <img src= ' <%# DataBinder.Eval(Container.DataItem, "pic ").ToString().Trim()%> ' width= "186 " height= "72 "> </div> </td>
</tr>
<tr>
<td height= "5 "> </td>
</tr>
<tr>
<td height= "180 " valign= "top ">
<table width= "200 " border= "0 " cellspacing= "0 " cellpadding= "0 ">
<tr>
<td width= "20 " height= "20 "> <div align= "center " class= "b1 "> </div> </td>
<td width= "180 " height= "20 "> <span class= "kuan_01 "> <a href= "nrjs.aspx?id= <%# DataBinder.Eval(Container.DataItem, "info_id ").ToString().Trim()%> " target= "_blank "> <%# len.GetLen(DataBinder.Eval(Container.DataItem, "title ").ToString().Trim(),13) %> </a> </span> </td>
</tr>
其它条循环这部分:
<tr>
<td width= "20 " height= "20 "> <div align= "center " class= "b1 "> </div> </td>
<td width= "180 " height= "20 "> <span class= "kuan_01 "> <a href= "nrjs.aspx?id= <%# DataBinder.Eval(Container.DataItem, "info_id ").ToString().Trim()%> " target= "_blank "> <%# len.GetLen(DataBinder.Eval(Container.DataItem, "title ").ToString().Trim(),13) %> </a> </span> </td>
</tr>

[解决办法]
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class Repeater_rpcourse : System.Web.UI.Page{ private int iIndex = 0; private int iTotalRecords = 0; private int iPageSize = 15; protected void Page_Load(object sender, EventArgs e) { DataTable dtYear = new DataTable(); dtYear.Columns.Add( "id ", typeof(int)); dtYear.Columns.Add( "year "); dtYear.Rows.Add(1, "2003学年第一学期 "); dtYear.Rows.Add(2, "2003学年第二学期 "); dtYear.Rows.Add(3, "2004学年第一学期 "); dtYear.Rows.Add(4, "2004学年第二学期 "); dtYear.Rows.Add(5, "2005学年第一学期 "); dtYear.Rows.Add(6, "2005学年第二学期 "); dtYear.Rows.Add(7, "2006学年第一学期 "); dtYear.Rows.Add(8, "2006学年第二学期 "); DataTable dtScore = new DataTable(); dtScore.Columns.Add( "yid ",typeof(int)); dtScore.Columns.Add( "name "); dtScore.Columns.Add( "type "); dtScore.Columns.Add( "score ", typeof(int)); for (int i = 1; i < 9; i++) { for (int j = 0; j < 10-i; j++) { dtScore.Rows.Add(i, "课程名称 ", "公共 ", j*10); } } DataSet ds = new DataSet(); ds.Tables.Add(dtYear); ds.Tables.Add(dtScore); dtYear.ChildRelations.Add( "r1 ", dtYear.Columns[ "id "], dtScore.Columns[ "yid "]); this.iTotalRecords = dtYear.Rows.Count + dtScore.Rows.Count; this.Repeater1.DataSource = dtYear.DefaultView; this.Repeater1.DataBind(); } protected string GetSpliter() { this.iIndex++; //Response.Write(this.iIndex.ToString() + "** <BR> "); if (iIndex % this.iPageSize == 0) { return @ " </table> </td> <td> <table border= " "1 " " bordercolor= " "black " " style= " "border-collapse:collapse " "> <tr> <td> 课程名称 </td> <td> 课程性质 </td> <td> 总评成绩 </td> </tr> "; } else if (this.iIndex == this.iTotalRecords) { if (this.iTotalRecords % this.iPageSize == 0) { return " "; } else { string str = " <tr> <td colspan= '3 ' align= 'center '> 以下为空白 </td> </tr> "; for (int i = 0; i < ((this.iPageSize - this.iTotalRecords % this.iPageSize))-1; i++) { str += " <tr> <td>   </td> <td>   </td> <td>   </td> </tr> "; } return str; } } else return " "; }}


[解决办法]
//.aspx 文件
<form id= "form1 " runat= "server ">
<div>
<asp:Repeater ID= "Repeater1 " runat= "server " OnItemDataBound= "Repeater1_ItemDataBound ">
<ItemTemplate>
<%#Eval( "id ")%>
<asp:Image ID= "Image1 " Runat= "server " ImageUrl= ' <%# Eval( "pic ", "{0} ") %> ' />
</ItemTemplate>
</asp:Repeater>
</div>
</form>

// aspx.cs文件

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace WebDemo
{
public partial class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
if (! IsPostBack )
{
SqlConnection cn = new SqlConnection(@ "server=.\SQLExpress;uid=sa;pwd=password;database=Test ");
SqlCommand cmd = new SqlCommand( "select id, pic from A ", cn);
cn.Open();
Repeater1.DataSource = cmd.ExecuteReader();
Repeater1.DataBind();
cn.Close();
}
}

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Image img;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.Item.ItemIndex == 0)
{
img = (Image)e.Item.FindControl( "Image1 ");
img.Visible = false;
}
}
}

}
}

数据库 Test
create table A
(
id int,
pic varchar(100)
)

insert into A values(1, '1.gif ')
insert into A values(2, '1.gif ')

读书人网 >asp.net

热点推荐