从数据库读取某一类产品(如100个),绑定到Datalist,想让最前的6个显示图片,其他只显示名称 在后期绑定上如何处理?我是用datalist来绑定并分页的,读取数据到Dataset然后绑定到datalist(ItemDataBound)请问:如果只想让最前的6个产品显示图片,其他的均只显示名称,如何在绑定时处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在DataList的项模板和选择模板中放两个Panel,其中一个pannel的模板为带图片的。另一个为不带图片的。在ItemDataBound动态进行显示第一个panel和显示第二个panel,比如; 如果是第七次之前绑定则显示panel1,隐藏panel2. 否则反之. 感觉还是放两个DataList方便,一个查询Top 6显图片,另一个就查除了Top 6以外的显名称。 数据查询时在SQL语句中多一个标志字段来确定是否是前6条记录然后绑定时,如果这个标志字段表示前6条记录,那么显示图片,否则不显示 回复人: ChengKing(Enthusiasm Bigrosoft) ( ) 信誉:135 ******************************在什么地方判断是进行第七次绑定?itemDataBound里? 考到你的空白页面上,看看效果是否符合你的要求<asp:DataList id="DataList1" runat="server"> <ItemTemplate> <asp:Image runat="server" enableviewstate="False" imageurl='<%#DataBinder.Eval(Container.DataItem,"face")%>' id='Image1'/> <asp:Label id="Label1" runat="server" text='<%#DataBinder.Eval(Container.DataItem,"name","{0}")%>' Visible=False/> </ItemTemplate></asp:DataList>private void Page_Load(object sender, System.EventArgs e){ DataTable dt=new DataTable(); DataRow dRow; dt.Columns.Add("face"); dt.Columns.Add("name"); for(int i=0;i<10;i++) { dRow=dt.NewRow(); dRow["face"]="001.gif";//////////你的图片 dRow["name"]="name"+i.ToString(); dt.Rows.Add(dRow); } DataList1.DataSource=dt; DataList1.DataBind();}private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e){ if(e.Item.ItemIndex>6) { ((Label)e.Item.FindControl("Label1")).Visible=true; ((Image)e.Item.FindControl("Image1")).Visible=false; }} 简单:<asp:DataList id="DataList1" runat="server"> <ItemTemplate> <asp:Image runat="server" imageurl='<%#DataBinder.Eval(Container.DataItem,"face")%>' id='Image1' Visible="<%#Container.Item.Index < 6%>"/> <asp:Label id="Label1" runat="server" text='<%#DataBinder.Eval(Container.DataItem,"name","{0}")%>' Visible="<%#Container.Item.Index >= 6%>"/> </ItemTemplate></asp:DataList> shang515(天天向上) <%Visible="<%#Container.Item.Index < 6%>对吗? 在ItemDataBound做一个for 怎么样? 用二个datalist,然再做成组成控件呢 IIS里应用程序扩展做了.html的处理后引起的报错.都进来看下~ 【求助帖】谷歌浏览器加载相对路径文件时的问题 怎样使用ajax分页?怎样避免刷新重复提交? IIS不能用 关于ASP.net配置参数问题 如何限制用户不能修改源代码啊!? DataGrid的选择删除问题,在线等 请大家帮帮忙啊!! 一道有趣的题目,请教思路,高手in 关于JS如何验证TextBox1里面必须为数字,TextBox2必须不为空 ASP.NET无法启动 问个Response.Redirect问题
另一个为不带图片的。在ItemDataBound动态进行显示第一个panel和显示第二个panel,比如; 如果是第七次之前绑定
则显示panel1,隐藏panel2. 否则反之.
然后绑定时,如果这个标志字段表示前6条记录,那么显示图片,否则不显示
在什么地方判断是进行第七次绑定?itemDataBound里?
<ItemTemplate>
<asp:Image runat="server" enableviewstate="False" imageurl='<%#DataBinder.Eval(Container.DataItem,"face")%>' id='Image1'/>
<asp:Label id="Label1" runat="server" text='<%#DataBinder.Eval(Container.DataItem,"name","{0}")%>' Visible=False/>
</ItemTemplate>
</asp:DataList>private void Page_Load(object sender, System.EventArgs e)
{
DataTable dt=new DataTable();
DataRow dRow;
dt.Columns.Add("face");
dt.Columns.Add("name");
for(int i=0;i<10;i++)
{
dRow=dt.NewRow();
dRow["face"]="001.gif";//////////你的图片
dRow["name"]="name"+i.ToString();
dt.Rows.Add(dRow);
}
DataList1.DataSource=dt;
DataList1.DataBind();
}private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if(e.Item.ItemIndex>6)
{
((Label)e.Item.FindControl("Label1")).Visible=true;
((Image)e.Item.FindControl("Image1")).Visible=false;
}
}
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Image runat="server" imageurl='<%#DataBinder.Eval(Container.DataItem,"face")%>' id='Image1' Visible="<%#Container.Item.Index < 6%>"/>
<asp:Label id="Label1" runat="server" text='<%#DataBinder.Eval(Container.DataItem,"name","{0}")%>' Visible="<%#Container.Item.Index >= 6%>"/>
</ItemTemplate>
</asp:DataList>
做一个for 怎么样?