public static Control ShowUserResponseItem(QuestionnaireForm_Questions q)
        {
            List<QuestionnaireForms_ResponseItems> riList = q.QuestionnaireForms_ResponseItems.ToList();
            ResponseItemsType resType = (ResponseItemsType)q.ItemsType;

            Table tbl = new Table();

            for (int i = 0; i < riList.Count; i++)
            {
                TableRow tr = new TableRow();
                TableCell td = new TableCell {VerticalAlign = VerticalAlign.Top};
                QuestionnaireForms_ResponseItems ri = riList[i];
                switch (resType)
                {
                    case ResponseItemsType.CheckBox:
                        CheckBox chkbox = new CheckBox
                            {
                                ID = ri.ItemId.ToString(),
                                Text = " " + ri.ItemText,
                                Checked = false,
                                CssClass = "normaltextSmall"
                            };
                        td.Controls.Add(chkbox);

                        if (ri.HasInputText)
                        {
                            TextBox inputBox = new TextBox
                                {
                                    TextMode = TextBoxMode.MultiLine,
                                    Rows = 2,
                                    Width = Unit.Pixel(330),
                                    ID = "txt" + ri.ItemId
                                };
                            Label br = new Label {Text = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"};
                            td.Controls.Add(br);
                            td.Controls.Add(inputBox);
                        }
                        break;

                    case ResponseItemsType.InputText:
                        TextBox txtBox = new TextBox
                            {
                                TextMode = TextBoxMode.MultiLine,
                                Rows = 2,
                                Width = Unit.Pixel(330),
                                ID = ri.ItemId.ToString()
                            };
                        Label l = new Label {Text = " " + ri.ItemText + " ", CssClass = "normaltextSmall"};
                        td.Controls.Add(l);
                        Label blankF = new Label {Text = ""};
                        if (l.Text.Trim().Length > 0)
                            blankF.Text = "<br>";
                        blankF.Text += "&nbsp;&nbsp;&nbsp;";
                        td.Controls.Add(blankF);
                        td.Controls.Add(txtBox);
                        break;

                    case ResponseItemsType.RadioButton:
                        RadioButton radioBtn = new RadioButton
                            {
                                ID = ri.ItemId.ToString(),
                                Text = " " + ri.ItemText,
                                GroupName = "qroup" + ri.QuestionsId,
                                CssClass = "normaltextSmall"
                            };
                        td.Controls.Add(radioBtn);
                        if (ri.HasInputText)
                        {
                            TextBox inputBox = new TextBox
                                {
                                    TextMode = TextBoxMode.MultiLine,
                                    Rows = 2,
                                    Width = Unit.Pixel(330),
                                    ID = "txt" + ri.ItemId
                                };
                            Label br = new Label {Text = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"};
                            td.Controls.Add(br);
                            td.Controls.Add(inputBox);
                        }
                        break;
                }

                tr.Cells.Add(td);
                tbl.Rows.Add(tr);
            }
            return tbl;
        }
        public static Control ShowResponseItem(QuestionnaireForm_Questions q, string userMode)
        {
            List<QuestionnaireForms_ResponseItems> riList = q.QuestionnaireForms_ResponseItems.ToList();
            ResponseItemsType resType = (ResponseItemsType)q.ItemsType;

            Table tbl = new Table();

            for (int i = 0; i < riList.Count; i++)
            {
                TableRow tr = new TableRow();
                TableCell td = new TableCell();
                td.VerticalAlign = VerticalAlign.Top;
                QuestionnaireForms_ResponseItems ri = riList[i];
                switch (resType)
                {
                    case ResponseItemsType.CheckBox:
                        CheckBox chkbox = new CheckBox
                            {
                                ID = ri.ItemId.ToString(),
                                Text = " " + ri.ItemText,
                                Checked = false,
                                CssClass = "normaltextSmall"
                            };
                        td.Controls.Add(chkbox);
                        if (ri.HasInputText)
                        {
                            TextBox inputBox = new TextBox
                                {
                                    TextMode = TextBoxMode.MultiLine,
                                    Rows = 2,
                                    Width = Unit.Pixel(330),
                                    ID = "txt" + ri.ItemId
                                };
                            Label br = new Label();
                            br.Text = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                            td.Controls.Add(br);
                            td.Controls.Add(inputBox);
                        }
                        break;

                    case ResponseItemsType.InputText:
                        TextBox txtBox = new TextBox { ID = ri.ItemId.ToString() };
                        Label l = new Label();
                        l.Text = " " + ri.ItemText + " ";
                        l.CssClass = "normaltextSmall";
                        td.Controls.Add(l);
                        td.Controls.Add(txtBox);
                        break;

                    case ResponseItemsType.RadioButton:
                        RadioButton radioBtn = new RadioButton
                            {
                                ID = ri.ItemId.ToString(),
                                Text = " " + ri.ItemText,
                                GroupName = ri.QuestionsId.ToString(),
                                CssClass = "normaltextSmall"
                            };
                        td.Controls.Add(radioBtn);
                        if (ri.HasInputText)
                        {
                            TextBox inputBox = new TextBox();
                            inputBox.TextMode = TextBoxMode.MultiLine;
                            inputBox.Rows = 2;
                            inputBox.Width = Unit.Pixel(330);
                            inputBox.ID = "txt" + ri.ItemId;
                            Label br = new Label {Text = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"};
                            td.Controls.Add(br);
                            td.Controls.Add(inputBox);
                        }
                        break;
                }
                if (userMode.ToLower() == "admin")
                {
                    // set admin links
                    HyperLink editItem = new HyperLink();
                    HyperLink delitem = new HyperLink();
                    editItem.Text = "æíÑÇíÔ";
                    delitem.Text = "ÍÐÝ";
                    //editItem.NavigateUrl = SystemConfigs.UrlAdminEditResponseItem + ri.ItemId;
                    //delitem.NavigateUrl = SystemConfigs.UrlAdminDeleteResponseItem + ri.ItemId;
                    editItem.CssClass = "LinkCadetBlue";
                    delitem.CssClass = "LinkCadetBlue";
                    Label blankLblPre = new Label();
                    Label blankLblPost = new Label();
                    blankLblPre.Text = "&nbsp;&nbsp;";
                    blankLblPost.Text = "&nbsp;&nbsp;";
                    td.Controls.Add(blankLblPre);
                    td.Controls.Add(editItem);
                    td.Controls.Add(blankLblPost);
                    td.Controls.Add(delitem);
                }

                tr.Cells.Add(td);
                tbl.Rows.Add(tr);
            }
            return tbl;
        }
     private void FixupQuestionnaireForm_Questions(QuestionnaireForm_Questions previousValue)
     {
         if (IsDeserializing)
         {
             return;
         }
 
         if (previousValue != null && previousValue.QuestionnaireForm_UserResponses.Contains(this))
         {
             previousValue.QuestionnaireForm_UserResponses.Remove(this);
         }
 
         if (QuestionnaireForm_Questions != null)
         {
             if (!QuestionnaireForm_Questions.QuestionnaireForm_UserResponses.Contains(this))
             {
                 QuestionnaireForm_Questions.QuestionnaireForm_UserResponses.Add(this);
             }
 
             QuestionId = QuestionnaireForm_Questions.QuestionId;
         }
         if (ChangeTracker.ChangeTrackingEnabled)
         {
             if (ChangeTracker.OriginalValues.ContainsKey("QuestionnaireForm_Questions")
                 && (ChangeTracker.OriginalValues["QuestionnaireForm_Questions"] == QuestionnaireForm_Questions))
             {
                 ChangeTracker.OriginalValues.Remove("QuestionnaireForm_Questions");
             }
             else
             {
                 ChangeTracker.RecordOriginalValue("QuestionnaireForm_Questions", previousValue);
             }
             if (QuestionnaireForm_Questions != null && !QuestionnaireForm_Questions.ChangeTracker.ChangeTrackingEnabled)
             {
                 QuestionnaireForm_Questions.StartTracking();
             }
         }
     }