废话不说先看图吧:
当鼠标放到标王的图标时,自动弹出该标签下标王的List
首先看到要实现该List,对于机床的类别是三级
1.黑粗字体显示的类别
2.绿色字体显示的类别
3.和绿色字体并列的褐色字体的类别
对于某种类别的标王需要另外一个数据源:该标王下的标王公司信息
大家可以看 http://www.caigo365.com/ 看一下具体的效果。
为了实现类似的功能:
由于没时间去整理,代码比较乱,凑乎看吧:
Web 页面的代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="uclSysCategoryListStyle6.ascx.cs" Inherits="ascx_global_uclSysCategoryListStyle6" %>
<script type="text/javascript">
function hiddenDiv(strid, strlink) {
if (document.getElementById(strid) != null) {
document.getElementById(strid).style.display = "none";
document.getElementById(strlink).style.display = "none";
}
}
function showdiv(strid, strlink) {
if (document.getElementById(strid) != null) {
document.getElementById(strid).style.display = "block";
document.getElementById(strlink).style.display = "block";
}
}
</script>
<div class="productlist" style=" border-style:solid; border-color:#b7c5d9; border-width:1px; width:660px;">
<div class="listmain">
<ul>
<asp:Repeater ID="rpParent" runat="server" onitemdatabound="rpParent_ItemDataBound">
<ItemTemplate>
<li style="z-index: 9999; text-align:left ;">
<div class="pbiglist" style="z-index: 9999;">
<!-- 第1级类别-->
<h3><%# Eval("category_name")%></h3>
<div class="pkeyword-a">
<div class="pkeyword-b">
<!-- 第二级类带标王图标-->
<asp:Repeater ID="rpKing" runat="server" OnItemDataBound="rpKing_ItemDataBound">
<ItemTemplate>
<%# strRecmhtml%>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
<a href="/gyxx/index.shtml" class="more" target="_blank">更多</a>
</div>
<div class="listname">
<!-- 第二级类别-->
<ul>
<asp:Repeater ID="rpSon" runat="server" OnItemDataBound="rpSon_ItemDataBound">
<ItemTemplate>
<li style='width:<%# Eval("category_id").ToString() =="14"|| Eval("category_id").ToString() =="17"|| Eval("category_id").ToString() =="15"|| Eval("category_id").ToString() =="19"
|| Eval("category_id").ToString() =="22"|| Eval("category_id").ToString() =="23"|| Eval("category_id").ToString() =="20"|| Eval("category_id").ToString() =="32"
|| Eval("category_id").ToString() =="37"|| Eval("category_id").ToString() =="39"|| Eval("category_id").ToString() =="40"|| Eval("category_id").ToString() =="41"
|| Eval("category_id").ToString() =="42"|| Eval("category_id").ToString() =="12"|| Eval("category_id").ToString() =="13"|| Eval("category_id").ToString() =="78"
|| Eval("category_id").ToString() =="79" ?660:330%>; float:left; text-align:left;'>
<a href="/cpzx/index_<%# Eval("category_id")%>.shtml" class="sublist" target="_blank"><%# Eval("category_name")%></a>
<asp:Repeater ID="rpLevel3" runat="server" OnItemDataBound="rpLevel3_ItemDataBound">
<ItemTemplate>
<%# strKinghtml%>
</ItemTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
</div>
--后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Dwfbenben.BLL;
using System.Data;
using System.Text;
public partial class ascx_global_uclSysCategoryListStyle6 : System.Web.UI.UserControl
{
private Category bll = new Category();
private int size = 10;
public string Province { get; set; }
public string CanShu { get; set; }
public string GoToUrl { get; set; }
public string strlever3king;
public string categoryStr = "1,2,3";
private DataTable myKingtable;
private DataTable myKingcompanyTable;
private DataTable myRecCategorytable;
public string strKinghtml = "";//显示标王和一般的的类别,显示在第三级的机床类别里
public string strRecmhtml = "";//显示标王和推荐的类别,显示在第二级的机床类别里
public string CategoryStr
{
get
{
return this.categoryStr;
}
set
{
this.categoryStr = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if ((base.Request["province"] != null) && (base.Request.QueryString["province"] != ""))
{
this.Province = base.Server.UrlEncode(base.Request.QueryString["province"]);
}
getRecommandationCategoryInfo();
getKingInfo();
getBiddingKingCompany();
this.myParentBind();
}
}
protected void myParentBind()
{
this.rpParent.DataSource = this.bll.GetModelList(" category_parentid=0 and category_id in (" + CategoryStr + ")"," category_displayOrder,category_id");
this.rpParent.DataBind();
}
private void getKingInfo()
{
//DataSet myds = new DataSet();
//string filename = this.Server.MapPath("BiddingKing.xml");
//myds.ReadXml(filename);
//DataTable mytable=new DataTable();
//mytable= myds.Tables[0];
//myKingtable = mytable;
//一共7大类,显示的标王信息都是7大类下面的子类,因此从7之后开始
DataSet myds =this.bll.GetBiddingWithKing(10000, " category_parentid>7" , "");
myKingtable = myds.Tables[0];
}
private void getRecommandationCategoryInfo()
{
DataSet myds = this.bll.GetBiddingListHightLight(1000, "", "");
myRecCategorytable = myds.Tables[0];
}
private void getBiddingKingCompany()
{
Dwfbenben.BLL.Company companybll = new Company();
DataSet myds = companybll.GetKingList(1000, "", "");
myKingcompanyTable = myds.Tables[0];
}
protected void rpParent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
int num;
//string text = ((Literal)e.Item.FindControl("ltid")).Text;
string text = DataBinder.Eval(e.Item.DataItem, "category_id").ToString();
Repeater repeater = (Repeater)e.Item.FindControl("rpSon");
repeater.DataSource = this.bll.GetList(this.size, 1, " category_parent;
return imgStr;
}
}