动态生成table,tablecell,tablerow例子

根据工作需要又有一个动态生成table的需求:实现按照单位把具有同一类别的人员按照表格形式动态输出

           /// 查询数据库得到具有此种角色的单位数目
            string strdept="select dept.d_id,d_name from user_sys,user_role,role,dept "
                +"where user_sys.u_id =user_role.u_id and user_role.r_id=role.r_id "
            +"and user_sys.d_id=dept.d_id and role.r_name='事务添加' group by dept.d_id,dept.d_name";
            OracleDataReader odrdept = db.odr(strdept);
            ///以单位数目进行循环生成table
            while (odrdept.Read())
            {
                #region 根据单位信息得到本单位拥有此角色所有人员
                string struser = "select user_sys.u_id,user_sys.u_mc from user_sys,user_role,role,dept where "
                    +"user_sys.u_id =user_role.u_id and user_role.r_id=role.r_id "
                    +" and user_sys.d_id=dept.d_id and role.r_name='事务添加' and user_sys.d_id="+odrdept["d_id"].ToString();
                OracleDataReader odruser = db.odr(struser);
                int loopindex=0;
                int looprange = 7;
                #endregion

                #region 创建并设置table属性
                Table tb = new Table();
                tb.Width = 800;
                tb.BorderStyle = BorderStyle.Double;
                tb.Caption = odrdept["d_name"].ToString();
                tb.BorderColor = ColorTranslator.FromHtml("#336666");
                tb.BorderWidth = 3;
                tb.CellPadding = 0;
                tb.CellSpacing = 0;
                #endregion
                while (odruser.Read())
                {
                    #region 创建tablerow并生成一行记录
                    loopindex = 0;
                    TableRow tr = new TableRow();
                    do
                    {
                        HyperLink hp = new HyperLink();
                        hp.Text = odruser["u_mc"].ToString();
                        hp.NavigateUrl = "DeansCalendar.aspx?accid="+odruser["u_id"].ToString();
                        TableCell tc = new TableCell();
                        tc.VerticalAlign = VerticalAlign.Middle;
                        tc.Style.Add("padding-top", "5px");
                        tc.BorderWidth = 1;
                        tc.Height = 18;
                        tc.HorizontalAlign = HorizontalAlign.Center;
                        tc.Controls.Add(hp);
                        tr.Cells.Add(tc);
                        loopindex++;
                    }
                    while ((loopindex < looprange) && odruser.Read());
                    tb.Rows.Add(tr);
                    #endregion
                }
                form1.Controls.Add(tb);
                odruser.Close();
            }
            odrdept.Close(); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值