风讯(foosun)栏目导航的一点问题

bnc9595 2010-01-11 07:29:16
以下是显示栏目导航的代码:
1、栏目导航显示

/// <summary>
/// 栏目导航
/// </summary>
/// <returns></returns>
public string Analyse_ClassNavi()
{
//获取栏目ID
string str_ClassID = this.GetParamValue("FS:ClassID");
//获取导航样式
string str_NaviCSS = this.GetParamValue("FS:NaviCSS");
//获取分隔符
string str_NaviChar = this.GetParamValue("FS:NaviChar");

string str_Mapp = this.GetParamValue("FS:Mapp");

//如果导航样式不为空
if (str_NaviCSS != null)
{
str_NaviCSS = "class=\"" + str_NaviCSS + "\"";
}
string pcid = "";
int P = 0;
//如果栏目ID不为空&&栏目ID不为-1&&栏目ID不为0,即栏目ID为具体哪个栏目
if (str_ClassID != null && str_ClassID != "-1" && str_ClassID!="0")
{
pcid = str_ClassID;
P = 1;
}
//如果栏目ID不是具体哪个栏目,当前栏目不为空时
else if (this.Param_CurrentClassID != null)
{
if (str_ClassID == "0")
{
//获取栏目当前ID
pcid = this.Param_CurrentClassID;
P = 1;
}
}
string str_Navi = string.Empty;
string str_gNaviChar = string.Empty;
IList<PubClassInfo> list = CommonData.NewsClass;
if (list != null && list.Count > 0)
{
int jm = 0;
foreach (PubClassInfo info in list)
{
if (jm == 0)
{
str_gNaviChar = string.Empty;
}
else
{
str_gNaviChar = str_NaviChar;
}
if (P == 0)
{
string str_url = "";
if (info.IsURL == 1)
{
str_url = info.URLaddress;
}
else
{
str_url = getClassURL(info.isDelPoint, info.ClassID, info.SavePath, info.SaveClassframe, info.ClassSaveRule);
}
str_Navi += " <li>" + str_gNaviChar + " <a href=\"" + str_url + "\" " + str_NaviCSS + ">" + newLine;
str_Navi += " " + info.ClassCName + "</a>";
str_Navi += " </li>" + newLine;
}
else
{
if (info.ParentID.ToLower().Trim() == pcid.ToLower().Trim() && info.SiteID == Param_SiteID)
{
string str_url = "";
if (info.IsURL == 1)
{
str_url = info.URLaddress;
}
else
{
str_url = getClassURL(info.isDelPoint, info.ClassID, info.SavePath, info.SaveClassframe, info.ClassSaveRule);
}
str_Navi += " <li>" + str_gNaviChar + " <a href=\"" + str_url + "\" " + str_NaviCSS + ">" + newLine;
str_Navi += " " + info.ClassCName + "</a>";
str_Navi += " </li>" + newLine;
}
}
jm++;
}
}
return str_Navi;
}



现在,我的栏目层次是这样的:

比如
+新闻中心
+国际新闻(终极栏目页)
新闻1
新闻2
.........
+国内新闻(终极栏目页)
+娱乐新闻(终极栏目页)
+体育新闻(终极栏目页)
+财经新闻(终极栏目页)

在新闻中心这个页面显示新闻中心下栏目导航是没有问题的。可是我想在国际新闻、国内新闻...这些终极栏目页面也显示新闻中心下的那个栏目导航,就做不到了。请高手帮我看看代码,我应该怎么改,或者是提示一下。实在是看不太懂C#的泛型和设计模式。谢谢各位了!
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shzrxml 2011-05-06
  • 打赏
  • 举报
回复
靠,楼上咋得分的!
  • 打赏
  • 举报
回复
这么多....
bnc9595 2010-01-12
  • 打赏
  • 举报
回复
代码有点多,谢谢各位了!
bnc9595 2010-01-11
  • 打赏
  • 举报
回复
3.


public class CommonData
{
public static Foosun.DALFactory.IPublish DalPublish = DataAccess.CreatePublish();
public static IList<PubClassInfo> NewsClass = new List<PubClassInfo>();
public static IList<PubSpecialInfo> NewsSpecial = new List<PubSpecialInfo>();
public static IList<PubCHClassInfo> CHClass = new List<PubCHClassInfo>();
public static IList<PubCHSpecialInfo> CHSpecial = new List<PubCHSpecialInfo>();
/// <summary>
/// 取得网站域名的根目录(绝对路径及相对路径)
/// </summary>
public static string SiteDomain;

public static string getUrl()
{
string flg = "";
string dirdumm = Foosun.Config.UIConfig.dirDumm;

if (dirdumm.Trim() != string.Empty)
{
dirdumm = "/" + dirdumm;
}
string linkType = Foosun.Common.Public.readparamConfig("linkTypeConfig");
string sitedomain = Foosun.Common.Public.readparamConfig("siteDomain");
if (linkType == "1")
{
if (sitedomain.IndexOf("http://") > -1) { flg = sitedomain + dirdumm; }
else { flg = "http://" + sitedomain + dirdumm; }
}
else { flg = dirdumm; }
//rd.Close();
return flg;
}
/// <summary>
/// 初始化数据函数
/// </summary>
/// <param name="cn"></param>
public static void Initialize()
{
SiteDomain = getUrl();
NewsClass.Clear();
NewsSpecial.Clear();
NewsClass = CommonData.DalPublish.GetClassList();
CHClass = CommonData.DalPublish.GetCHClassList();
NewsSpecial = CommonData.DalPublish.GetSpecialList();
CHSpecial = CommonData.DalPublish.GetCHSpecialList();
}
/// <summary>
/// 取得栏目的相关信息,必须是没有放在回收站中的
/// </summary>
public static PubClassInfo GetClassById(string classid)
{
foreach (PubClassInfo cl in NewsClass)
{
if (cl.ClassID.Equals(classid))
return cl;
}
return null;
}

/// <summary>
/// 取得频道栏目的相关信息
/// </summary>
public static PubCHClassInfo GetCHClassById(int ID)
{
foreach (PubCHClassInfo ccl in CHClass)
{
if (ccl.Id.Equals(ID))
return ccl;
}
return null;
}

/// <summary>
/// 取得专题的相关信息,必须是没有放在回收站中的
/// </summary>
public static PubSpecialInfo GetSpecial(string specialid)
{
foreach (PubSpecialInfo sp in NewsSpecial)
{
if (sp.SpecialID.Equals(specialid))
return sp;
}
return null;
}

/// <summary>
/// 取得专题的相关信息,必须是没有放在回收站中的
/// </summary>
public static PubCHSpecialInfo GetCHSpecial(int ID)
{
foreach (PubCHSpecialInfo sp in CHSpecial)
{
if (sp.Id.Equals(ID))
return sp;
}
return null;
}

public static string getNewsURLFormID(string NewsID, string DataLib)
{
string URLSTR = "";
string ReadType = Foosun.Common.Public.readparamConfig("ReviewType");
IDataReader rd = DalPublish.GetNewsInfoAndClassInfo(NewsID, DataLib);
if (rd.Read())
{
if (rd["NewsType"].ToString() == "2")
{
URLSTR = rd["URLaddress"].ToString();
}
else
{
if (rd["isDelPoint"].ToString() != "0")
{
URLSTR = "/Content.aspx?id=" + NewsID;
}
else
{
if (ReadType == "1")
{
URLSTR = "/Content.aspx?id=" + NewsID;
}
else
{
URLSTR = rd["SavePath1"].ToString() + "/" + rd["SaveClassframe"] + "/" + rd["SavePath"].ToString() + "/" + rd["FileName"].ToString() + rd["FileEXName"].ToString();
}
}
URLSTR = URLSTR.Replace("//", "/");
URLSTR = getUrl() + URLSTR;
}
}
rd.Close();
return URLSTR;
}

/// <summary>
/// 取得栏目访问地址
/// </summary>
/// <param name="SavePath">栏目保存路径</param>
/// <param name="ClassSaveRule">栏目保存规则</param>
/// <returns>返回访问地址</returns>
public static string getClassURL(int isDelPoint, string ClassID, string SavePath, string SaveClassframe, string ClassSaveRule)
{
CommonData.Initialize();
string tmstr = "";
if (Foosun.Common.Public.readparamConfig("ReviewType") == "1")
{
tmstr = "/list.aspx?id=" + ClassID;
}
else
{
if (isDelPoint != 0)
{
tmstr = "/list.aspx?id=" + ClassID;
}
else
{
tmstr = "/" + SavePath + "/" + SaveClassframe + "/" + ClassSaveRule;
}
}
return CommonData.SiteDomain + tmstr.Replace("//", "/");
}

/// <summary>
/// 取得新闻访问地址
/// </summary>
/// <param name="SavePath">新闻保存路径</param>
/// <param name="FileName">新闻文件名</param>
/// <param name="SaveClassframe">栏目存储新闻的规则</param>
/// <param name="FileEXName">新闻文件名后缀</param>
/// <returns>返回新闻访问地址</returns>
public static string getNewsURL(string isDelPoint, string NewsID, string SavePath, string SaveClassframe, string FileName, string FileEXName)
{
CommonData.Initialize();
string str_temppath = "";
if (Foosun.Common.Public.readparamConfig("ReviewType") == "1")
{
str_temppath = "/content.aspx?id=" + NewsID;
}
else
{
if (isDelPoint != "0")
{
str_temppath = "/content.aspx?id=" + NewsID;
}
else
{
str_temppath = "/" + SaveClassframe + "/" + SavePath + "/" + FileName + FileEXName;
}
}
str_temppath = CommonData.SiteDomain + str_temppath.Replace("//", "/");
return str_temppath;
}

/// <summary>
/// 取得栏目访问地址
/// </summary>
/// <param name="ClassID">栏目编号</param>
/// <returns>返回访问地址</returns>
public static string getClassURL(string ClassID)
{
CommonData.Initialize();
Foosun.Model.PubClassInfo pci = CommonData.GetClassById(ClassID);
return CommonData.getClassURL(pci.isDelPoint, pci.ClassID, pci.SavePath, pci.SaveClassframe, pci.ClassSaveRule);
}
}
bnc9595 2010-01-11
  • 打赏
  • 举报
回复
2、新闻栏目常用信息类

/// <summary>
/// 新闻栏目常用信息类
/// </summary>
public class PubClassInfo
{
public int Id;
public string ClassID = string.Empty;
public string ClassCName = string.Empty;
public string ClassEName = string.Empty;
public string ParentID = string.Empty;
public int IsURL;
public string URLaddress = string.Empty;
public string ClassTemplet = string.Empty;
public string SavePath = string.Empty;
public string SaveClassframe = string.Empty;
public string ClassSaveRule = string.Empty;
public string ClassIndexRule = string.Empty;
public string SiteID = string.Empty;
public int NaviShowtf;
public string NaviPIC = string.Empty;
public string NaviContent = string.Empty;
public string MetaKeywords = string.Empty;
public string MetaDescript = string.Empty;
public int isDelPoint;
public int Gpoint;
public int iPoint;
public string GroupNumber = string.Empty;
public string NaviPosition = string.Empty;
public string NewsPosition = string.Empty;
public int isPage;
public string PageContent = string.Empty;
}

62,265

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧