/// <summary>
        /// Render this control to the output parameter specified.
        /// </summary>
        /// <param name="output"> The HTML writer to write out to </param>
        protected override void RenderContent(HtmlTextWriter output)
        {
            TestListGenerator    gen;
            DojoMemberCollection eligibles;

            EnsureChildControls();

            gen = new TestListGenerator(connectionString);

            if (cbAllMembers.Checked)
            {
                DojoMemberManager memberManager = new DojoMemberManager();
                eligibles = memberManager.GetCollection("DojoMember.IsPrimaryOrgActive=true",
                                                        "DojoMember.RankID, DojoMember.RankDate DESC",
                                                        new DojoMemberFlags[]
                {
                    DojoMemberFlags.PrivateContact,
                    DojoMemberFlags.Rank
                });
            }
            else if (ddTests.SelectedItem.Value == "-1")
            {
                eligibles = gen.GetEligibleMembers();
            }
            else
            {
                eligibles = gen.GetEligibleMembers(new DojoTest(int.Parse(ddTests.SelectedItem.Value)));
            }

            bool   rowflag = false;
            string rowCssClass;

            //
            // Render Records
            //
            foreach (DojoMember member in eligibles)
            {
                if (rowflag)
                {
                    rowCssClass = this.defaultRowCssClass;
                }
                else
                {
                    rowCssClass = this.alternateRowCssClass;
                }
                rowflag = !rowflag;

                output.WriteBeginTag("tr");
                output.WriteAttribute("i", member.ID.ToString());
                output.Write(HtmlTextWriter.TagRightChar);
                output.Indent++;

                //
                // Render Main Representation of Record
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("nowrap", "true");
                output.WriteAttribute("class", rowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.PrivateContact.ConstructName("F Mi. L"));
                output.WriteEndTag("td");
                output.WriteLine();

                //
                // Render Eligibility Date
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.TestEligibilityDate.ToShortDateString());
                output.WriteEndTag("td");
                output.WriteLine();

                //
                // Render Hours Balance
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                if (member.TestEligibilityHoursBalance.TotalHours > 0)
                {
                    output.Write("+");
                }
                output.Write(member.TestEligibilityHoursBalance.TotalHours.ToString("f"));
                output.WriteEndTag("td");
                output.WriteLine();


                //
                // Render Promotion Rank
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.Rank.PromotionRank.Name);
                output.WriteEndTag("td");
                output.WriteLine();

                //
                // Render Last Seen
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.LastSignin.ToShortDateString());
                output.WriteEndTag("td");
                output.WriteLine();

                renderInstructor(output, member.Instructor1, rowCssClass);
                renderInstructor(output, member.Instructor2, rowCssClass);
                renderInstructor(output, member.Instructor3, rowCssClass);

                output.Indent--;
                output.WriteEndTag("tr");
                output.WriteLine();
            }
        }
        /// <summary>
        /// Render this control to the output parameter specified.
        /// </summary>
        /// <param name="output"> The HTML writer to write out to </param>
        protected override void RenderContent(HtmlTextWriter output)
        {
            TestListGenerator    gen       = new TestListGenerator(connectionString);
            DojoMemberCollection eligibles = gen.GetEligibleMembers();

            bool   rowflag = false;
            string rowCssClass;

            //
            // Render Records
            //
            foreach (DojoMember member in eligibles)
            {
                if (rowflag)
                {
                    rowCssClass = this.defaultRowCssClass;
                }
                else
                {
                    rowCssClass = this.alternateRowCssClass;
                }
                rowflag = !rowflag;

                output.WriteBeginTag("tr");
                output.WriteAttribute("i", member.ID.ToString());
                output.Write(HtmlTextWriter.TagRightChar);
                output.Indent++;

                //
                // Render Main Representation of Record
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("nowrap", "true");
                output.WriteAttribute("class", rowCssClass);
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.PrivateContact.ConstructName("F Mi. L"));
                output.WriteEndTag("td");
                output.WriteLine();

                //
                // Render Eligibility Date
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.TestEligibilityDate.ToShortDateString());
                output.WriteEndTag("td");
                output.WriteLine();

                //
                // Render Hours Balance
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                if (member.TestEligibilityHoursBalance.TotalHours > 0)
                {
                    output.Write("+");
                }
                output.Write(member.TestEligibilityHoursBalance.TotalHours.ToString("f"));
                output.WriteEndTag("td");
                output.WriteLine();


                //
                // Render Promotion Rank
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.Rank.PromotionRank.Name);
                output.WriteEndTag("td");
                output.WriteLine();

                //
                // Render Last Seen
                //
                output.WriteBeginTag("td");
                output.WriteAttribute("class", rowCssClass);
                output.WriteAttribute("valign", "top");
                output.Write(HtmlTextWriter.TagRightChar);
                output.Write(member.LastSignin.ToShortDateString());
                output.WriteEndTag("td");
                output.WriteLine();

                renderInstructor(output, member.Instructor1, rowCssClass);
                renderInstructor(output, member.Instructor2, rowCssClass);
                renderInstructor(output, member.Instructor3, rowCssClass);

                output.Indent--;
                output.WriteEndTag("tr");
                output.WriteLine();
            }
        }