编程方式创建HTML控件

只知道怎么去用Html控件,然后对自定义创建HTml的控件 了解甚少(我个人)

今天偶也来说说 怎么去创建HTml的控件

Ok。。

还是那样 直接进入 例子吧。

这个例子用了 Table 和Button 做为实例,

先是做了个 定行顶列的Table

 

先建个了  工程

namespace XzySoft.WebHtml
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //页面加载时调用了创建方法
            AddTable();
            AddButn();
        }
        /// <summary>
        /// 创建Table 控件的方法
        /// </summary>

        private void AddTable()
        {
            HtmlTable table = new HtmlTable();//HtmlTable 类是 Table的基类
            table.Border = 1;
            table.CellPadding = 1;//这里设置了 单元格边框的距离为1
            table.CellSpacing = 1;//这里设置了相邻单元格的距离为1
            table.BorderColor = "red";//边框颜色


            HtmlTableRow row;
            HtmlTableCell cell;
            //这里设置了 Table的行数和列数
            for (int i = 0; i < 5; i++)
            {
                row = new HtmlTableRow();
                row.BgColor = (1 % 2 == 0 ? "yellow" : "cyan");
                for (int j = 0; j < 4; j++)
                {
                    cell = new HtmlTableCell();
                    cell.InnerHtml = "行" + i.ToString() + "</br>" + "列" + j.ToString();
                    row.Cells.Add(cell);
                }
                table.Rows.Add(row);
            }
            this.Controls.Add(table);
        }

        /// <summary>
        /// 这个是创建Button的方法
        /// </summary>
        public void AddButn()
        {
            for (int i = 0; i < 3; i++)
            {
                HtmlButton btn = new HtmlButton();
                //这里是Button的一些属性
                btn.Style.Add("bgcolor", "red");
                btn.Style.Add("backgrounnd", "Yellow");
                btn.Style.Add("width", "156px");
                btn.Style.Add("height", "189px");
              
               
                this.Controls.Add(btn);

            }
        }

这里的例子,可以看出只做了 定行定列的Table,

后来想想不行啊,要是可以手动改变行列,而无需再修改代码是不是好点呢

所以 也就处来了下面的这段代码

 

 

    protected void Button1_Click(object sender, EventArgs e)
        {
            tb1.Controls.Clear();
            int rows = Int32.Parse(TextBox1.Text.ToString());//接收行的
            int cells = Int32.Parse(TextBox2.Text.ToString());//接受列的
         
            for (int row = 1; row <= rows; row++)
            {
                TableRow newrow = new TableRow();
                tb1.Controls.Add(newrow);

                for (int col = 1; col < cells; col++)
                {
                    TableCell cell = new TableCell();
                    cell.Text="当前行列为:("+ row.ToString()+ ",";
                    cell.Text +=  col.ToString() + ")";

                    if (CheckBox1.Checked)
                    {
                        cell.BorderStyle = BorderStyle.Inset;
                        cell.BorderWidth = Unit.Pixel(1);
                    }
                    newrow.Controls.Add(cell);
                }
            }
        }

 

在页面上拖了 一个Table 然后将去内容(既行列)清空,

再在页面上拖了两个 TextBox1  ,一个Button 和 一个CheckBox1

在Button事件里 进行了 指定行列的 创建Table 代码

小弟 我还是说不清楚。。

每次都只能将自己写的 测试代码 复制上去。。

有搞不好像各位大大 那样。。

代码都可以分块。。

真郁闷

 

 

posted @ 2010-05-13 21:43  笨蛋菜鸟  阅读(482)  评论(0编辑  收藏  举报