控件适配器-更高级一点的适配器

作者:vkvi 来源:ITPOW(原创) 日期:2007-11-15

上一节讲的用将 BulletedList 转换成 p,这一节讲将其转换成 table。

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.Adapters;

namespace Cftea
{
    public class BulletedListAdapter : WebControlAdapter
    {
        protected override void RenderBeginTag(HtmlTextWriter writer)
        {
            writer.WriteLine();
            writer.WriteBeginTag("table");
            writer.Write(HtmlTextWriter.TagRightChar);
            //base.RenderBeginTag(writer);
        }
        protected override void RenderContents(HtmlTextWriter writer)
        {
            BulletedList bl = Control as BulletedList;
            if (bl != null)
            {
                writer.Indent++;
                int i = 0;
                for (i = 0; i < bl.Items.Count; i++)
                {
                    writer.WriteLine();
                    writer.WriteBeginTag("tr");
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.WriteLine();
                    writer.Indent++;
                    writer.WriteBeginTag("td");
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Write(bl.Items[i].Text);
                    writer.WriteEndTag("td");
                    writer.WriteLine();
                    writer.Indent--;
                    writer.WriteEndTag("tr");
                }
            }
            //base.RenderContents(writer);
        }
        protected override void RenderEndTag(HtmlTextWriter writer)
        {
            writer.WriteLine();
            writer.Indent--;
            writer.WriteEndTag("table");
            //base.RenderEndTag(writer);
        }
    }
}

可以看到新增了一些内容:

  • writer.WriteLine();
  • writer.Indent; 代码缩进。

有 ASP 编程经验的大概都知道,以上代码和利用 ASP 将数据库中的数据以表格形式输出没有什么两样,并不复杂。

生成的 HTML 代码如下:

<table>
 <tr>
  <td>Item1</td>
 </tr>
 <tr>
  <td>Item2</td>
 </tr>
 <tr>
  <td>Item3</td>
 </tr>
</table>

 


相关文章