#region "render"        public override void RenderBeginTag(HtmlTextWriter writer) { }
        public override void RenderEndTag(HtmlTextWriter writer) { }
        //瀹氫箟涓啓鍏ュ垎闅旂鐨勮繃绋?
        private void RenderSeparator(HtmlTextWriter writer, string s)
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "10%");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(s);
            writer.RenderEndTag();  //td
        }        //瀹氫箟涓€涓緭鍏ユ鏋勫缓杩囩▼
        private void RenderInput(HtmlTextWriter writer,string id,string value)
        {
            string val = value;          
             writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
             writer.RenderBeginTag(HtmlTextWriterTag.Td);         
             writer.AddAttribute(HtmlTextWriterAttribute.Id, id);
             writer.AddAttribute(HtmlTextWriterAttribute.Name, id);
             writer.AddAttribute(HtmlTextWriterAttribute.Type, "TextBox");
             writer.AddAttribute(HtmlTextWriterAttribute.Value, val);
             writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "left");
             writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
             writer.RenderBeginTag(HtmlTextWriterTag.Input);
             writer.RenderEndTag();  //Input
             writer.RenderEndTag();  //td
        }        //瀹氫箟涓€涓緭鍏ユ鏋勫缓杩囩▼
        private void RenderCheckbox(HtmlTextWriter writer, string id1, string value1,string id2,string value2)
        {
            string val1 = value1;
            string val2 = value2;
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "10%");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, id1);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, id1);
            //writer.AddStyleAttribute(HtmlTextWriterAttribute.Class, checkoutTextbox);      
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "Checkbox");
            writer.AddAttribute(HtmlTextWriterAttribute.Value, val1);
            //writer.AddAttribute(HtmlTextWriterAttribute.Onchange, "validate('" + this.ID + "')");
            writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "left");
            //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag();  //Input
            writer.RenderEndTag();  //td            writer.AddAttribute(HtmlTextWriterAttribute.Align, "left");
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "40%");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(val1);
            writer.RenderEndTag();  //1td            writer.AddAttribute(HtmlTextWriterAttribute.Width, "10%");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, id2);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, id2);
            //writer.AddStyleAttribute(HtmlTextWriterAttribute.Class, checkoutTextbox);      
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "Checkbox");
            writer.AddAttribute(HtmlTextWriterAttribute.Value, val2);
            //writer.AddAttribute(HtmlTextWriterAttribute.Onchange, "validate('" + this.ID + "')");
            writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "left");
            //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag();  //Input
            writer.RenderEndTag();  //td            writer.AddAttribute(HtmlTextWriterAttribute.Align, "left");
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "40%");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(val2);
            writer.RenderEndTag();  //1td        }

解决方案 »

  1.   


            private void RenderManagerCheckbox(HtmlTextWriter writer)
            {
                CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_1", "鏋楃涓?, "manager_2", "澶у彂閫?);
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_3", "椋炴磼鐨?, "manager_4", "澶ч樋鍙?);
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_5", "鏌旇蒋1", "manager_6", "娣樻卑");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_7", "澶у箙搴?, "manager_8", "闃块亾澶?);
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_9", "鍙戝彂", "manager_10", "骞垮憡");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_11", "濂藉潖", "manager_12", "鍥介槻璐?);
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "manager_13", "闃垮彂鍙?, "manager_14", "鍢庡槑");          
                writer.RenderEndTag(); //tr>        }        private void RenderBranchCheckbox(HtmlTextWriter writer)
            {
                CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_1", "钀ヤ笟閮?, "branch_2", "浣涘北鍒嗚");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_3", "涓滆帪鍒嗚", "branch_4", "姹熼棬鍒嗚");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_5", "鐝犳捣鍒嗚", "branch_6", "鑲囧簡鍒嗚");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_7", "涓北鍒嗚", "branch_8", "婀涙睙鍒嗚");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_9", "闃虫睙鍒嗚", "branch_10", "鑼傚悕鍒嗚");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_11", "浜戞诞鍒嗚", "branch_12", "鎻槼鍒嗚");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_13", "闊跺叧鍒嗚", "branch_14", "娌虫簮鍒嗚");
                writer.RenderEndTag(); //tr>            CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_15", "姹曞ご鍒嗚", "branch_16", "姹曞熬鍒嗚");
                writer.RenderEndTag(); //tr>            CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_17", "娓呰繙鍒嗚", "branch_18", "姊呭窞鍒嗚");
                writer.RenderEndTag(); //tr>            CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "branch_19", "鎯犲窞鍒嗚", "branch_20", "浜戞诞鍒嗚");
                writer.RenderEndTag(); //tr>
            }        private void RenderDeptCheckbox(HtmlTextWriter writer)
            {
                CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "department_1", "杩愯绠$悊閮?, "department_2", "涓汉閲戣瀺涓氬姟閮?);
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "department_3", "鐢靛瓙閾惰閮?, "department_4", "閾惰鍗¢儴");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "department_5", "鐜伴噾涓庣粨绠楃鐞嗛儴", "department_6", "娓呯畻涓績");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "department_7", "璁″垝璐㈠姟閮?, "department_8", "璧勪骇璐熷€虹鐞嗛儴");
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "department_9", "鍥介檯涓氬姟閮?, "department_10", "鏈烘瀯涓氬姟閮?);
                writer.RenderEndTag(); //tr>             CheckStyle.AddAttributesToRender(writer);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);  //<tr
                RenderCheckbox(writer, "department_11", "淇℃伅绉戞妧閮?, "department_12", "浜哄姏璧勬簮閮?);
                writer.RenderEndTag(); //tr> 
            }
      

  2.   


            //鏋勫缓鏁翠釜鎺т欢
            protected override void RenderContents(HtmlTextWriter writer)
            {
                this.AddAttributesToRender(writer);
                if (BorderStyle == BorderStyle.NotSet)
                    writer.AddStyleAttribute("border", "2px inset");
                if ( Width == Unit.Empty)
                    writer.AddAttribute(HtmlTextWriterAttribute.Width, "1px");           
                writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
                writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");           
                writer.RenderBeginTag(HtmlTextWriterTag.Table);
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                RenderInput(writer, ID + "_value", Value.ToString());
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "20%");
                writer.AddAttribute(HtmlTextWriterAttribute.Align, "right");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                ButtonStyle.AddAttributesToRender(writer); 
                writer.AddAttribute(HtmlTextWriterAttribute.Id, ID + "_button");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "button");
                writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "showDialog('" + this.ID + "','"+this.DialogMode+"')");           
                writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "18px");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag();  //Input
                writer.RenderEndTag();  //td
                
                writer.RenderEndTag();  //tr
                writer.RenderEndTag();  //table            if (this.DesignMode)
                    return;    
                
                //鏋勫缓寮瑰嚭閫夋嫨绐楀彛
                DialogStyle.AddAttributesToRender(writer);
                if (DialogStyle.Width == Unit.Empty)
                    writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "300px");
                if (DialogStyle.BorderStyle == BorderStyle.NotSet)
                    writer.AddStyleAttribute("border", "1px outset");
                writer.AddAttribute(HtmlTextWriterAttribute.Id, ID + "_val");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Position, "absolute");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Visibility, "hidden");    
                writer.RenderBeginTag(HtmlTextWriterTag.Div);//<Div
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
                writer.AddAttribute(HtmlTextWriterAttribute.Height, "100%");
                writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
                writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
                writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                writer.AddStyleAttribute(HtmlTextWriterStyle.BorderCollapse, "collapse");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Cursor, "hand");
                writer.RenderBeginTag(HtmlTextWriterTag.Table);//<table
             
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);//<tr
                TitleStyle.AddAttributesToRender(writer);
                writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "4");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);//<td
                writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
                writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
                writer.RenderBeginTag(HtmlTextWriterTag.Table);//<table
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);//<tr            writer.RenderBeginTag(HtmlTextWriterTag.Td);//<1td
                writer.RenderEndTag();  //1td>            
                //<2td
                writer.AddAttribute(HtmlTextWriterAttribute.Align, "left");
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "90%");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(DialogTitle);
                writer.RenderEndTag();  //2td>
                writer.RenderEndTag();  //tr>
                writer.RenderEndTag();  //table>
                writer.RenderEndTag();  //td>
                writer.RenderEndTag(); //tr>
                writer.WriteLine("<!--end:header-->");            if (DialogMode=="manager")
                    RenderManagerCheckbox(writer);
                if (DialogMode == "branch")
                    RenderBranchCheckbox(writer);
                if (DialogMode == "department")
                    RenderDeptCheckbox(writer);            writer.AddAttribute(HtmlTextWriterAttribute.Height, "10px");
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);//<tr
               
                writer.RenderBeginTag(HtmlTextWriterTag.Td);//<td
                writer.RenderEndTag();  //td>
                writer.RenderBeginTag(HtmlTextWriterTag.Td);//<td
                writer.RenderEndTag();  //td>
                
                writer.RenderBeginTag(HtmlTextWriterTag.Td);//<td
                writer.RenderEndTag();  //td>
                writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);//<td
                //ButtonStyle.AddAttributesToRender(writer);
                writer.AddAttribute(HtmlTextWriterAttribute.Id, "confirm_btn");
                writer.AddAttribute(HtmlTextWriterAttribute.Name, "confirm_btn");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "button");
                writer.AddAttribute(HtmlTextWriterAttribute.Value, "纭");
                writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "comfirm('" + this.ID + "','" + this.DialogMode + "')");
                writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
                writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag();  //td>            writer.RenderEndTag(); //tr>
                writer.RenderEndTag(); //table>   
                writer.RenderEndTag(); //div>   
            }        #endregion