打印本文 打印本文 关闭窗口 关闭窗口
使用 ASP.NET Community Starter Kit建造网站
作者:武汉SEO闵涛  文章来源:敏韬网  点击数6105  更新时间:2009/4/23 10:44:10  文章录入:mintao  责任编辑:mintao
      "@communityID", CommunityGlobals.CommunityID);
   cmdGet.Parameters.Add("@username", username);
   cmdGet.Parameters.Add("@contentPageID", contentPageID);
   conPortal.Open();
   SqlDataReader dr = cmdGet.ExecuteReader();
   if (dr.Read())
       faq = new FaqInfo(dr);
   conPortal.Close();
   return faq;
}
public static ArrayList GetFaqs(string username, int sectionID,
                                int pageSize, int pageIndex,
                                string sortOrder)
{
   SqlConnection conPortal = new
      SqlConnection(CommunityGlobals.ConnectionString);
   SqlCommand cmdGet = new SqlCommand( "Community_FaqsGetFaqs",
                                      conPortal);
   cmdGet.CommandType = CommandType.StoredProcedure;
   cmdGet.Parameters.Add("@communityID",
                         CommunityGlobals.CommunityID);
   cmdGet.Parameters.Add("@username", username);
   cmdGet.Parameters.Add("@sectionID", sectionID);
   cmdGet.Parameters.Add("@pageSize", pageSize);
   cmdGet.Parameters.Add("@pageIndex", pageIndex);
   cmdGet.Parameters.Add("@sortOrder", sortOrder);
 
   ArrayList faqs = new ArrayList();
   conPortal.Open();
   SqlDataReader dr = cmdGet.ExecuteReader();
   while (dr.Read())
   faqs.Add(new FaqInfo(dr));
   conPortal.Close();
   return faqs;
}
这里有比较重要的一点是GetFaqInfo使用了以上特定的参数列表.在类框架中将通过其它的代理类来调用此方法所以参数必须一致.在后面我们写内容页面时你将会看到它是如何工作的。
我们的数据访问层现在已经完成了。如果你按照这个方式创建了模块,你已经可以开始编译和解决错误了。你可以考虑写一个驱动页面来试验以上FaqUtility 中的4个静态方法,并检查在表Community_Faqs  Community_ContentPages中的结果是否正确。

FAQ WebControls

在CSK中把显示内容的功能分成几个较小的控件。例如在Engine\Framework\ContentPages\Controls目录下,你会看到一个显示标题的控件(文件名Title.cs),还要内容摘要的控件(BriefDescription.cs)。我们需要为FAQ再增加两个特定的控件,一个显示答案和参考,另一个为授权用户显示编辑内容的链接。

FaqAnswer 和 FaqReference

在这一层的所有控件都是从.NET Framework的WebControl控件继承而来。我们只需简单地设置控件的CssClass属性,从当前HttpContext中获取要显示的文本,然后重载RenderContents方法写出该文本。

下面的控件将被创建在Engine\Module\Faqs\Controls中,用来显示FAQ的答案和参考:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ASPNET.StarterKit.Communities.Faqs;
using System.ComponentModel;
namespace ASPNET.StarterKit.Communities
{
   [Designer(typeof(ASPNET.StarterKit.Communities.CommunityDesigner))]
   public class FaqAnswer : WebControl
   {
      public FaqAnswer() : base()
      {
         CssClass = "faqAnswerText";
         if(Context != null)
         {
            Object faqInfo = Context.Items["ContentInfo"];
            if(faqInfo != null)
            {
               _text = ((FaqInfo)faqInfo).AnswerText;
            }
         }
      }
      public string Text
      {
         get { return _text; }
         set { _text = value; }
      }

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 

打印本文 打印本文 关闭窗口 关闭窗口