我的cs 文件代码如下!
private void BindGood()
{
string strsql = @"select top 5 ('BBS_ReferList.aspx?SectionId='+CAST (S.SectionID as varchar(14))) as url ,S.SectionName, R.Hits
from BBS_Sections as S Inner Join (select top 5 SectionID,Hits from BBS_Refers order by Hits desc) as R On S.SectionID = R.SectionID";
DataSet objds = new DataSet();
objds = SqlHelper.ExecuteDataset(Operate.SqlConn,CommandType.Text,strsql);
try
{
Repeater1.DataSource = objds.Tables[0];
Repeater1.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
页面邦定代码如下:
<asp:repeater id="Repeater1" runat="server">
<ItemTemplate>
<asp:Image id="Image2" runat="server" ImageUrl="../image/bbs_1.gif" Width="14px" Height="15px"></asp:Image>
<a href='<%#DataBinder.Eval(Container.DataItem,"url")%>'>
<%#DataBinder.Eval(Container.DataItem,"SectionName")%>
</a>(<%#DataBinder.Eval(Container.DataItem,"Hits")%>)
<br>
</ItemTemplate>
</asp:repeater>我现在想做的事情是Repeater每换一行输出数据我就把前面的图片换成另外一个
image/bbs_1.gif;
也就是说,Repeater如果输出5行数据(每行一列)的话!平时前面会有5个一样的图标。我想把把这个图片换成5 个不同的图片怎么办?谢谢!
private void BindGood()
{
string strsql = @"select top 5 ('BBS_ReferList.aspx?SectionId='+CAST (S.SectionID as varchar(14))) as url ,S.SectionName, R.Hits
from BBS_Sections as S Inner Join (select top 5 SectionID,Hits from BBS_Refers order by Hits desc) as R On S.SectionID = R.SectionID";
DataSet objds = new DataSet();
objds = SqlHelper.ExecuteDataset(Operate.SqlConn,CommandType.Text,strsql);
try
{
Repeater1.DataSource = objds.Tables[0];
Repeater1.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
页面邦定代码如下:
<asp:repeater id="Repeater1" runat="server">
<ItemTemplate>
<asp:Image id="Image2" runat="server" ImageUrl="../image/bbs_1.gif" Width="14px" Height="15px"></asp:Image>
<a href='<%#DataBinder.Eval(Container.DataItem,"url")%>'>
<%#DataBinder.Eval(Container.DataItem,"SectionName")%>
</a>(<%#DataBinder.Eval(Container.DataItem,"Hits")%>)
<br>
</ItemTemplate>
</asp:repeater>我现在想做的事情是Repeater每换一行输出数据我就把前面的图片换成另外一个
image/bbs_1.gif;
也就是说,Repeater如果输出5行数据(每行一列)的话!平时前面会有5个一样的图标。我想把把这个图片换成5 个不同的图片怎么办?谢谢!
<ItemTemplate>
<div>
<img src="<%#Container.ItemIndex %>.gif" />
<%#Eval("学生姓名") %>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div>
<img src="<%#Container.ItemIndex.ToString() %>.gif" />
<%#DataBinder.Eval(Container.DataItem,"学生姓名")%>
</div>
</ItemTemplate>另外,还可以在绑定事件里通过e.Items.FindControl("Image2")实现
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Image Image2 = (Image)e.Item.FindControl("Image2");
///下面的地址从哪来自己决定啊
Image2.ImageUrl = "../" + e.Item.ItemIndex.ToString() + ".gif";
}
}
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.Item.ItemIndex < 5)
{
System.Web.UI.WebControls.Image Image2 = (System.Web.UI.WebControls.Image)e.Item.FindControl("Image2");
System.Data.Common.DbDataRecord db = (System.Data.Common.DbDataRecord)e.Item.DataItem;
Image2.ImageUrl = "Upload/" + db["PhotoPath"].ToString();
}
}
}
Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString();
?
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
System.Web.UI.WebControls.Image Image2 = (System.Web.UI.WebControls.Image)e.Item.FindControl("Image2");
if (e.Item.ItemIndex < 5)
{
// System.Data.Common.DbDataRecord db = (System.Data.Common.DbDataRecord)e.Item.DataItem; //DataReader数据源使用
System.Data.DataView db = (System.Data.DataView)e.Item.DataItem; //DataSet数据源使用
Image2.ImageUrl = "Upload/" + db["PhotoPath"].ToString();
}
else
{
Image2.Visible = false;
}
}
}
这句话是不是添加Upload目录下的PhotoPath图片来?
Image2.ImageUrl = "Upload/" + db["PhotoPath"].ToString();是啊,根据你的路径自己调整啊
Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString();
但这样的话,我每个文件的名字是不同的阿?还是我
Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString(); Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString(); Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString(); Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString(); Image2.ImageUrl = "image/" + db["bbs_no1.gif"].ToString();
这样!把里面的bbs_no1.gif改成我每个文件的名字?!
protected void Repeater1_ItemDataBound( object sender, RepeaterItemEventArgs e )
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
System.Web.UI.WebControls.Image Image2 = (System.Web.UI.WebControls.Image)e.Item.FindControl("Image2");
Image2.ImageUrl = "image/bbs_no" + (e.Item.ItemIndex+1).ToString() + ".gif";
}
}
不是
System.Data.Common.DbDataRecord
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
System.Web.UI.WebControls.Image Image2 = (System.Web.UI.WebControls.Image)e.Item.FindControl("Image2");
Image2.ImageUrl = "image/bbs_no" + (e.Item.ItemIndex+1).ToString() + ".gif";
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form runat="server">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div>
<asp:Image ID="Image2" runat="server" ImageUrl="" Width="14px" Height="15px"></asp:Image>
<%#DataBinder.Eval(Container.DataItem, "Title")%>
</div>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</HTML>using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebApplication16
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater Repeater1;
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WebSite1\App_Data\ASPNET20Book.mdb;";
System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection(ConnectionString);
cn.Open();
string sql = "select * from [Student]";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql, cn);
System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
Repeater1.DataSource = dr;
Repeater1.DataBind();
dr.Close();
cmd.Dispose();
cn.Dispose();
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
System.Web.UI.WebControls.Image Image2 = (System.Web.UI.WebControls.Image)e.Item.FindControl("Image2");
Image2.ImageUrl = "image/bbs_no" + (e.Item.ItemIndex + 1).ToString() + ".gif";
}
}
}
}