protected void rbl_Result_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (rbl_Result.SelectedValue != "")
        {
            QNA_QuestionOption option = new QNA_QuestionBLL((int)ViewState["CurrentQuestion"]).GetDetailModel(int.Parse(rbl_Result.SelectedValue));
            if (option.CanInputText == "Y")
            {
                tbx_Result.Visible = true;
                if (rev_Result.ValidationExpression != "")
                {
                    rev_Result.Enabled = true;
                }
            }
            else
            {
                tbx_Result.Visible = false;
                rev_Result.Enabled = false;
            }

            if (option.NextQuestion != 0 && (int)ViewState["CurrentQuestion"] != (int)ViewState["LastQuestion"])
            {
                ViewState["NextQuestion"] = option.NextQuestion;
            }
        }
    }
Пример #2
0
    protected void bt_Enabled_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] != 0)
        {
            if (QNA_QuestionBLL.GetModelList("Project=" + ViewState["ID"].ToString() + " AND IsFirstQ='Y'").Count != 1)
            {
                MessageBox.Show(this, "对不起,问卷的标题中必须有,且只能有一项“问卷入口”!");
                return;
            }

            if (QNA_QuestionBLL.GetModelList("Project=" + ViewState["ID"].ToString() + " AND IsLastQ='Y'").Count != 1)
            {
                MessageBox.Show(this, "对不起,问卷的标题中必须有,且只能有一项“问卷出口”!");
                return;
            }

            QNA_ProjectBLL p = new QNA_ProjectBLL((int)ViewState["ID"]);
            p.Model.Enabled = "Y";

            p.Model.UpdateStaff = (int)Session["UserID"];
            p.Update();

            MessageBox.ShowAndRedirect(this, "启用成功!", "QNA_ProjectList.aspx");
        }
    }
    private void BindData()
    {
        QNA_Question m = new QNA_QuestionBLL((int)ViewState["ID"]).Model;

        if (m != null)
        {
            ViewState["Project"] = m.Project;
            BindProjectInfo();

            pl_detail.BindData(m);

            #region 绑定标题选项结果
            if (m.OptionMode == 1 || m.OptionMode == 2)
            {
                BindGrid();
                if (m.OptionMode == 2)
                {
                    ddl_NextQuestion.Enabled = false;
                }
            }
            else
            {
                tr_OptionList.Visible = false;
            }
            #endregion
        }
    }
    private void BindData()
    {
        QNA_ProjectBLL p = new QNA_ProjectBLL((int)ViewState["Project"]);

        lb_ProjectName.Text           = p.Model.Name;
        ViewState["ResultStatistics"] = p.GetResultStatistics();
        lb_TotalCount.Text            = p.GetResultCount().ToString();

        if (MCSTabControl1.SelectedIndex == 0)
        {
            rpt_Question.DataSource = QNA_QuestionBLL.GetModelList("Project=" + p.Model.ID.ToString() + " ORDER BY SortCode");
            rpt_Question.DataBind();

            rpt_Question.Visible = true;
            gv_List.Visible      = false;
        }
        else
        {
            gv_List.DataSource = (DataTable)ViewState["ResultStatistics"];
            gv_List.DataBind();

            rpt_Question.Visible = false;
            gv_List.Visible      = true;
        }
    }
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            int id = int.Parse(((Label)e.Item.FindControl("lb_ID")).Text);
            QNA_QuestionBLL q = new QNA_QuestionBLL(id);

            RadioButtonList rbl_Result = (RadioButtonList)e.Item.FindControl("rbl_Result");
            CheckBoxList cbl_Result = (CheckBoxList)e.Item.FindControl("cbl_Result");
            TextBox tbx_Result = (TextBox)e.Item.FindControl("tbx_Result");

            if (q.Model != null)
            {
                switch (q.Model.OptionMode)
                {
                    case 1:                 //单选
                        rbl_Result.DataSource = q.Items;
                        rbl_Result.DataBind();
                        rbl_Result.Visible = true;
                        break;
                    case 2:                 //多选
                        cbl_Result.DataSource = q.Items;
                        cbl_Result.DataBind();
                        cbl_Result.Visible = true;
                        break;
                    case 3:                 //输入文本
                        tbx_Result.Visible = true;
                        break;
                }
            }
        }
    }
Пример #6
0
    protected void rbl_Result_SelectedIndexChanged(object sender, EventArgs e)
    {
        Label                      lb_ID      = (Label)((RadioButtonList)sender).Parent.FindControl("lb_ID");
        RadioButtonList            rbl_Result = (RadioButtonList)((RadioButtonList)sender).Parent.FindControl("rbl_Result");
        CheckBoxList               cbl_Result = (CheckBoxList)((RadioButtonList)sender).Parent.FindControl("cbl_Result");
        TextBox                    tbx_Result = (TextBox)((RadioButtonList)sender).Parent.FindControl("tbx_Result");
        RegularExpressionValidator rev_Result = (RegularExpressionValidator)((RadioButtonList)sender).Parent.FindControl("rev_Result");

        if (rbl_Result.SelectedValue != "")
        {
            QNA_QuestionOption option = new QNA_QuestionBLL(int.Parse(lb_ID.Text)).GetDetailModel(int.Parse(rbl_Result.SelectedValue));
            if (option.CanInputText == "Y")
            {
                tbx_Result.Visible = true;
                if (rev_Result.ValidationExpression != "")
                {
                    rev_Result.Enabled = true;
                }
            }
            else
            {
                tbx_Result.Visible = false;
                rev_Result.Enabled = false;
            }
        }
    }
Пример #7
0
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            int             id = int.Parse(((Label)e.Item.FindControl("lb_ID")).Text);
            QNA_QuestionBLL q  = new QNA_QuestionBLL(id);

            RadioButtonList rbl_Result = (RadioButtonList)e.Item.FindControl("rbl_Result");
            CheckBoxList    cbl_Result = (CheckBoxList)e.Item.FindControl("cbl_Result");
            TextBox         tbx_Result = (TextBox)e.Item.FindControl("tbx_Result");

            if (q.Model != null)
            {
                switch (q.Model.OptionMode)
                {
                case 1:                     //单选
                    rbl_Result.DataSource = q.Items;
                    rbl_Result.DataBind();
                    rbl_Result.Visible = true;
                    break;

                case 2:                     //多选
                    cbl_Result.DataSource = q.Items;
                    cbl_Result.DataBind();
                    cbl_Result.Visible = true;
                    break;

                case 3:                     //输入文本
                    tbx_Result.Visible = true;
                    break;
                }
            }
        }
    }
    protected void gv_List_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int             i = Int32.Parse(gv_List.DataKeys[e.RowIndex].Value.ToString());
        QNA_QuestionBLL q = new QNA_QuestionBLL((int)ViewState["ID"]);

        q.DeleteDetail(i);
        gv_List.BindGrid <QNA_QuestionOption>(new QNA_QuestionBLL((int)ViewState["ID"]).Items);
    }
Пример #9
0
 private void BindRepeater()
 {
     if ((int)ViewState["Project"] != 0)
     {
         Repeater1.DataSource = QNA_QuestionBLL.GetModelList("Project=" + ViewState["Project"].ToString() + " ORDER BY SortCode");
         Repeater1.DataBind();
     }
 }
    protected void bt_OK_Click(object sender, EventArgs e)
    {
        QNA_QuestionBLL _bll;
        if ((int)ViewState["ID"] != 0)
        {
            //修改
            _bll = new QNA_QuestionBLL((int)ViewState["ID"]);
        }
        else
        {
            //新增
            _bll = new QNA_QuestionBLL();
        }

        pl_detail.GetData(_bll.Model);

        #region 判断必填项
          /*  if (_bll.Model.IsLastQ == "N" && _bll.Model.DefaultNextQ == 0)
        {
            MessageBox.Show(this, "必须正确选择默认下一题!");
            return;
        }
           */

        if (_bll.Model.OptionMode == 0)
        {
            MessageBox.Show(this, "必须正确选择选项模式!");
            return;
        }
        if (_bll.Model.IsFirstQ == "0") _bll.Model.IsFirstQ = "N";
        if (_bll.Model.IsLastQ == "0") _bll.Model.IsLastQ = "N";

        if (_bll.Model.IsLastQ == "Y" && _bll.Model.DefaultNextQ != 0) _bll.Model.DefaultNextQ = 0;
        #endregion

        if ((int)ViewState["ID"] != 0)
        {
            //修改
            _bll.Model.UpdateStaff = (int)Session["UserID"];
            if (_bll.Update() == 0)
            {
                MessageBox.ShowAndRedirect(this, "修改成功!", "QNA_QuestionDetail.aspx?ID=" + ViewState["ID"].ToString());
            }
        }
        else
        {
            //新增
            _bll.Model.Project = (int)ViewState["Project"];
            _bll.Model.InsertStaff = (int)Session["UserID"];
            _bll.Model.ApproveFlag = 2;

            ViewState["ID"] = _bll.Add();
            if ((int)ViewState["ID"] > 0)
            {
                MessageBox.ShowAndRedirect(this, "新增成功!", "QNA_QuestionDetail.aspx?ID=" + ViewState["ID"].ToString());
            }
        }
    }
Пример #11
0
    private void BindData()
    {
        QNA_ResultBLL r = new QNA_ResultBLL((int)ViewState["Result"]);

        if (r.Model != null)
        {
            QNA_Project p = new QNA_ProjectBLL(r.Model.Project).Model;
            lb_ProjectName.Text = p.Name;

            Repeater1.DataSource = QNA_QuestionBLL.GetModelList("Project=" + r.Model.Project.ToString() + " ORDER BY ID");
            Repeater1.DataBind();

            foreach (RepeaterItem _ri in Repeater1.Items)
            {
                int             question   = int.Parse(((Label)_ri.FindControl("lb_ID")).Text);
                RadioButtonList rbl_Result = (RadioButtonList)_ri.FindControl("rbl_Result");
                CheckBoxList    cbl_Result = (CheckBoxList)_ri.FindControl("cbl_Result");
                TextBox         tbx_Result = (TextBox)_ri.FindControl("tbx_Result");

                foreach (QNA_Result_Detail _d in r.Items.Where <QNA_Result_Detail>(d => d.Question == question))
                {
                    if (_d.Option != 0)
                    {
                        if (rbl_Result.Visible)
                        {
                            rbl_Result.SelectedValue = _d.Option.ToString();
                        }
                        else if (cbl_Result.Visible)
                        {
                            foreach (ListItem item in cbl_Result.Items)
                            {
                                if (item.Value == _d.Option.ToString())
                                {
                                    item.Selected = true;
                                }
                            }
                        }
                    }

                    if (_d.OptionText != "")
                    {
                        tbx_Result.Visible = true;
                        tbx_Result.Text    = _d.OptionText;
                    }
                }
            }
        }
    }
    protected void Page_Load(object sender, System.EventArgs e)
    {
        // 在此处放置用户代码以初始化页面
        if (!Page.IsPostBack)
        {
            #region 获取页面参数
            ViewState["ID"] = Request.QueryString["ID"] != null?int.Parse(Request.QueryString["ID"]) : 0;

            ViewState["Project"] = Request.QueryString["Project"] != null?int.Parse(Request.QueryString["Project"]) : 0;

            #endregion

            BindDropDown();

            if ((int)ViewState["ID"] != 0)
            {
                //修改
                BindData();

                #region 绑定跳转问题
                ddl_NextQuestion.DataSource = QNA_QuestionBLL.GetModelList("Project=" + ViewState["Project"].ToString() + " AND IsFirstQ='N' AND ID<>" + ViewState["ID"].ToString());
                ddl_NextQuestion.DataBind();
                ddl_NextQuestion.Items.Insert(0, new ListItem("请选择...", "0"));
                #endregion
            }
            else
            {
                //新增
                if ((int)ViewState["Project"] == 0)
                {
                    MessageBox.ShowAndRedirect(this, "参数错误,未包含所属问卷Project参数!", "QNA_ProjectList.aspx");
                    return;
                }
                BindProjectInfo();

                #region 新增标题时,界面控件默认设置
                tr_OptionList.Visible = false;


                ((DropDownList)pl_detail.FindControl("QNA_Question_IsFirstQ")).SelectedValue = "N";
                ((DropDownList)pl_detail.FindControl("QNA_Question_IsLastQ")).SelectedValue  = "N";


                #endregion
            }
        }
    }
    protected void rpt_Question_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            int             id = int.Parse(((Label)e.Item.FindControl("lb_ID")).Text);
            QNA_QuestionBLL q  = new QNA_QuestionBLL(id);

            Repeater rpt_Option = (Repeater)e.Item.FindControl("rpt_Option");
            rpt_Option.DataSource = q.Items;
            rpt_Option.DataBind();

            foreach (RepeaterItem _ri in rpt_Option.Items)
            {
                #region 绑定选项统计结果及柱形条长度
                DataTable dt_result = (DataTable)ViewState["ResultStatistics"];
                int       option    = int.Parse(((Label)_ri.FindControl("lb_OptionID")).Text);
                Label     lb_Bar    = (Label)_ri.FindControl("lb_Bar");
                Label     lb_Counts = (Label)_ri.FindControl("lb_Counts");

                int       _maxcounts = 0, _counts = 0;
                DataRow[] _rows = dt_result.Select("QuestionID = " + id.ToString());
                foreach (DataRow _r in _rows)
                {
                    if ((int)_r["OptionID"] == option)
                    {
                        _counts = (int)_r["Counts"];
                    }
                    if ((int)_r["Counts"] > _maxcounts)
                    {
                        _maxcounts = (int)_r["Counts"];
                    }
                }

                lb_Counts.Text = _counts.ToString();
                if (_counts > 0)
                {
                    lb_Bar.Width = new Unit(400 * _counts / _maxcounts);
                    lb_Bar.Text  = ".";
                }
                #endregion
            }
        }
    }
    protected void bt_AddOption_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] > 0)
        {
            QNA_QuestionBLL q = new QNA_QuestionBLL((int)ViewState["ID"]);

            QNA_QuestionOption o = new QNA_QuestionOption();
            o.OptionName = tbx_OptionName.Text;
            o.NextQuestion = int.Parse(ddl_NextQuestion.SelectedValue);
            o.CanInputText = ddl_YesOrNo.SelectedValue;
            o.Question = (int)ViewState["ID"];
            q.AddDetail(o);

            BindGrid();

            tbx_OptionName.Text = "";
            ddl_NextQuestion.SelectedValue = "0";
            ddl_YesOrNo.SelectedValue = "N";
        }
    }
    protected void bt_AddOption_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] > 0)
        {
            QNA_QuestionBLL q = new QNA_QuestionBLL((int)ViewState["ID"]);

            QNA_QuestionOption o = new QNA_QuestionOption();
            o.OptionName   = tbx_OptionName.Text;
            o.NextQuestion = int.Parse(ddl_NextQuestion.SelectedValue);
            o.CanInputText = ddl_YesOrNo.SelectedValue;
            o.Question     = (int)ViewState["ID"];
            q.AddDetail(o);

            BindGrid();

            tbx_OptionName.Text            = "";
            ddl_NextQuestion.SelectedValue = "0";
            ddl_YesOrNo.SelectedValue      = "N";
        }
    }
 protected void cbl_Result_SelectedIndexChanged(object sender, EventArgs e)
 {
     tbx_Result.Visible = false;
     rev_Result.Enabled = false;
     foreach (ListItem item in cbl_Result.Items)
     {
         if (item.Selected)
         {
             QNA_QuestionOption option = new QNA_QuestionBLL((int)ViewState["CurrentQuestion"]).GetDetailModel(int.Parse(item.Value));
             if (option.CanInputText == "Y")
             {
                 tbx_Result.Visible = true;
                 if (rev_Result.ValidationExpression != "")
                 {
                     rev_Result.Enabled = true;
                 }
                 break;
             }
         }
     }
 }
    protected void rpt_Question_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            int id = int.Parse(((Label)e.Item.FindControl("lb_ID")).Text);
            QNA_QuestionBLL q = new QNA_QuestionBLL(id);

            Repeater rpt_Option = (Repeater)e.Item.FindControl("rpt_Option");
            rpt_Option.DataSource = q.Items;
            rpt_Option.DataBind();

            foreach (RepeaterItem _ri in rpt_Option.Items)
            {
                #region 绑定选项统计结果及柱形条长度
                DataTable dt_result = (DataTable)ViewState["ResultStatistics"];
                int option = int.Parse(((Label)_ri.FindControl("lb_OptionID")).Text);
                Label lb_Bar = (Label)_ri.FindControl("lb_Bar");
                Label lb_Counts = (Label)_ri.FindControl("lb_Counts");

                int _maxcounts = 0, _counts = 0;
                DataRow[] _rows = dt_result.Select("QuestionID = " + id.ToString());
                foreach (DataRow _r in _rows)
                {
                    if ((int)_r["OptionID"] == option) _counts = (int)_r["Counts"];
                    if ((int)_r["Counts"] > _maxcounts) _maxcounts = (int)_r["Counts"];
                }

                lb_Counts.Text = _counts.ToString();
                if (_counts > 0)
                {
                    lb_Bar.Width = new Unit(400 * _counts / _maxcounts);
                    lb_Bar.Text = ".";
                }
                #endregion

            }
        }
    }
    private void BindProjectInfo()
    {
        QNA_Project q = new QNA_ProjectBLL((int)ViewState["Project"]).Model;

        if (q != null)
        {
            lb_ProjectName.Text = q.Name;

            #region 绑定默认下一标题控件
            DropDownList ddl_DefaultNextQ = ((DropDownList)pl_detail.FindControl("QNA_Question_DefaultNextQ"));
            ddl_DefaultNextQ.DataTextField  = "Title";
            ddl_DefaultNextQ.DataValueField = "ID";
            ddl_DefaultNextQ.DataSource     = QNA_QuestionBLL.GetModelList("Project=" + ViewState["Project"].ToString() + " AND IsFirstQ='N' AND ID<>" + ViewState["ID"].ToString());
            ddl_DefaultNextQ.DataBind();
            ddl_DefaultNextQ.Items.Insert(0, new ListItem("无默认下一标题", "0"));
            #endregion

            if (q.DisplayType == 2)
            {
                //顺序显示
                ddl_NextQuestion.Enabled = false;
            }
        }
    }
    private void BindQuestion(int question)
    {
        if (question != 0)
        {
            ViewState["CurrentQuestion"] = question;
            QNA_QuestionBLL q = new QNA_QuestionBLL(question);
            if (q != null)
            {
                lb_QuestionTitle.Text       = q.Model.Title;
                lb_QuestionDescription.Text = q.Model.Description;
                ViewState["TextRegularExp"] = q.Model.TextRegularExp;

                cbl_Result.Items.Clear();
                rbl_Result.Items.Clear();
                tbx_Result.Text = "";

                cbl_Result.Visible = false;
                rbl_Result.Visible = false;
                tbx_Result.Visible = false;

                switch (q.Model.OptionMode)
                {
                case 1:                     //单选
                    rbl_Result.DataSource = q.Items;
                    rbl_Result.DataBind();
                    rbl_Result.Visible = true;
                    break;

                case 2:                     //多选
                    cbl_Result.DataSource = q.Items;
                    cbl_Result.DataBind();
                    cbl_Result.Visible = true;
                    break;

                case 3:
                    tbx_Result.Visible = true;
                    break;
                }

                if (q.Model.DefaultNextQ != 0)
                {
                    ViewState["NextQuestion"] = q.Model.DefaultNextQ;
                    lb_NextQuestion.Text      = new QNA_QuestionBLL(q.Model.DefaultNextQ).Model.Title;
                }

                rev_Result.ValidationExpression = q.Model.TextRegularExp;

                if (((Stack <int>)ViewState["PreviousQuestion"]).Count == 0)
                {
                    bt_Previous.Visible = false;
                }
                else
                {
                    bt_Previous.Visible = true;
                }

                #region 问卷出口时的界面控制
                if (q.Model.IsLastQ == "Y")
                {
                    bt_Next.Visible  = false;
                    bt_ToEnd.Visible = false;

                    bt_Save.Visible           = true;
                    bt_Cancel.Visible         = true;
                    ViewState["NextQuestion"] = 0;
                }
                else
                {
                    bt_Next.Visible  = true;
                    bt_ToEnd.Visible = true;

                    bt_Save.Visible   = false;
                    bt_Cancel.Visible = false;
                }
                #endregion
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            #region 获取页面参数
            ViewState["Project"] = Request.QueryString["Project"] != null?int.Parse(Request.QueryString["Project"]) : 0;

            ViewState["RelateClient"] = Request.QueryString["RelateClient"] != null?int.Parse(Request.QueryString["RelateClient"]) : 0;

            ViewState["RelateTask"] = Request.QueryString["RelateTask"] != null?int.Parse(Request.QueryString["RelateTask"]) : 0;

            #endregion

            ViewState["PreviousQuestion"] = new Stack <int>();       //上一题堆栈
            ViewState["CurrentQuestion"]  = 0;
            ViewState["NextQuestion"]     = 0;
            ViewState["LastQuestion"]     = 0;
            ViewState["ResultDetails"]    = new List <QNA_Result_Detail>();

            #region 验证问卷启用标及及出入口
            if ((int)ViewState["Project"] == 0)
            {
                MessageBox.ShowAndClose(this, "对不起,参数中必须有指定的调研问卷Project!");
                return;
            }
            else
            {
                QNA_Project p = new QNA_ProjectBLL((int)ViewState["Project"]).Model;
                if (p == null || p.Enabled == "N")
                {
                    MessageBox.ShowAndClose(this, "对不起,该调研问卷未启用!");
                    return;
                }
                else
                {
                    lb_ProjectName.Text = p.Name;

                    if (p.DisplayType == 2)     //顺序模式问卷
                    {
                        Response.Redirect("QNA_FillQuestionnairB.aspx" + Request.Url.Query);
                        return;
                    }

                    IList <QNA_Question> firstq = QNA_QuestionBLL.GetModelList("Project=" + p.ID.ToString() + " AND IsFirstQ='Y'");
                    if (firstq.Count != 1)
                    {
                        MessageBox.ShowAndClose(this, "对不起,该调研问卷没有正确的入口!");
                        return;
                    }
                    else
                    {
                        BindQuestion(firstq[0].ID);
                    }

                    IList <QNA_Question> lastq = QNA_QuestionBLL.GetModelList("Project=" + p.ID.ToString() + " AND IsLastQ='Y'");
                    if (lastq.Count != 1)
                    {
                        MessageBox.ShowAndClose(this, "对不起,该调研问卷没有正确的出口!");
                        return;
                    }
                    else
                    {
                        ViewState["LastQuestion"] = lastq[0].ID;
                    }
                }
            }
            #endregion
        }
    }
    private void BindQuestion(int question)
    {
        if (question != 0)
        {
            ViewState["CurrentQuestion"] = question;
            QNA_QuestionBLL q = new QNA_QuestionBLL(question);
            if (q != null)
            {
                lb_QuestionTitle.Text = q.Model.Title;
                lb_QuestionDescription.Text = q.Model.Description;
                ViewState["TextRegularExp"] = q.Model.TextRegularExp;

                cbl_Result.Items.Clear();
                rbl_Result.Items.Clear();
                tbx_Result.Text = "";

                cbl_Result.Visible = false;
                rbl_Result.Visible = false;
                tbx_Result.Visible = false;

                switch (q.Model.OptionMode)
                {
                    case 1:                 //单选
                        rbl_Result.DataSource = q.Items;
                        rbl_Result.DataBind();
                        rbl_Result.Visible = true;
                        break;
                    case 2:                 //多选
                        cbl_Result.DataSource = q.Items;
                        cbl_Result.DataBind();
                        cbl_Result.Visible = true;
                        break;
                    case 3:
                        tbx_Result.Visible = true;
                        break;
                }

                if (q.Model.DefaultNextQ != 0)
                {
                    ViewState["NextQuestion"] = q.Model.DefaultNextQ;
                    lb_NextQuestion.Text = new QNA_QuestionBLL(q.Model.DefaultNextQ).Model.Title;
                }

                rev_Result.ValidationExpression = q.Model.TextRegularExp;

                if (((Stack<int>)ViewState["PreviousQuestion"]).Count == 0)
                    bt_Previous.Visible = false;
                else
                    bt_Previous.Visible = true;

                #region 问卷出口时的界面控制
                if (q.Model.IsLastQ == "Y")
                {
                    bt_Next.Visible = false;
                    bt_ToEnd.Visible = false;

                    bt_Save.Visible = true;
                    bt_Cancel.Visible = true;
                    ViewState["NextQuestion"] = 0;
                }
                else
                {
                    bt_Next.Visible = true;
                    bt_ToEnd.Visible = true;

                    bt_Save.Visible = false;
                    bt_Cancel.Visible = false;
                }
                #endregion

            }
        }
    }
    protected void rbl_Result_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (rbl_Result.SelectedValue != "")
        {
            QNA_QuestionOption option = new QNA_QuestionBLL((int)ViewState["CurrentQuestion"]).GetDetailModel(int.Parse(rbl_Result.SelectedValue));
            if (option.CanInputText == "Y")
            {
                tbx_Result.Visible = true;
                if (rev_Result.ValidationExpression != "") rev_Result.Enabled = true;
            }
            else
            {
                tbx_Result.Visible = false;
                rev_Result.Enabled = false;
            }

            if (option.NextQuestion != 0 && (int)ViewState["CurrentQuestion"] != (int)ViewState["LastQuestion"])
                ViewState["NextQuestion"] = option.NextQuestion;
        }
    }
 protected void cbl_Result_SelectedIndexChanged(object sender, EventArgs e)
 {
     tbx_Result.Visible = false;
     rev_Result.Enabled = false;
     foreach (ListItem item in cbl_Result.Items)
     {
         if (item.Selected)
         {
             QNA_QuestionOption option = new QNA_QuestionBLL((int)ViewState["CurrentQuestion"]).GetDetailModel(int.Parse(item.Value));
             if (option.CanInputText == "Y")
             {
                 tbx_Result.Visible = true;
                 if (rev_Result.ValidationExpression != "") rev_Result.Enabled = true;
                 break;
             }
         }
     }
 }
    protected void bt_OK_Click(object sender, EventArgs e)
    {
        QNA_QuestionBLL _bll;

        if ((int)ViewState["ID"] != 0)
        {
            //修改
            _bll = new QNA_QuestionBLL((int)ViewState["ID"]);
        }
        else
        {
            //新增
            _bll = new QNA_QuestionBLL();
        }

        pl_detail.GetData(_bll.Model);

        #region 判断必填项

        /*  if (_bll.Model.IsLastQ == "N" && _bll.Model.DefaultNextQ == 0)
         * {
         *    MessageBox.Show(this, "必须正确选择默认下一题!");
         *    return;
         * }
         */

        if (_bll.Model.OptionMode == 0)
        {
            MessageBox.Show(this, "必须正确选择选项模式!");
            return;
        }
        if (_bll.Model.IsFirstQ == "0")
        {
            _bll.Model.IsFirstQ = "N";
        }
        if (_bll.Model.IsLastQ == "0")
        {
            _bll.Model.IsLastQ = "N";
        }

        if (_bll.Model.IsLastQ == "Y" && _bll.Model.DefaultNextQ != 0)
        {
            _bll.Model.DefaultNextQ = 0;
        }
        #endregion

        if ((int)ViewState["ID"] != 0)
        {
            //修改
            _bll.Model.UpdateStaff = (int)Session["UserID"];
            if (_bll.Update() == 0)
            {
                MessageBox.ShowAndRedirect(this, "修改成功!", "QNA_QuestionDetail.aspx?ID=" + ViewState["ID"].ToString());
            }
        }
        else
        {
            //新增
            _bll.Model.Project     = (int)ViewState["Project"];
            _bll.Model.InsertStaff = (int)Session["UserID"];
            _bll.Model.ApproveFlag = 2;

            ViewState["ID"] = _bll.Add();
            if ((int)ViewState["ID"] > 0)
            {
                MessageBox.ShowAndRedirect(this, "新增成功!", "QNA_QuestionDetail.aspx?ID=" + ViewState["ID"].ToString());
            }
        }
    }
    private void BindData()
    {
        QNA_Question m = new QNA_QuestionBLL((int)ViewState["ID"]).Model;
        if (m != null)
        {
            ViewState["Project"] = m.Project;
            BindProjectInfo();

            pl_detail.BindData(m);

            #region 绑定标题选项结果
            if (m.OptionMode == 1 || m.OptionMode == 2)
            {
                BindGrid();
                if (m.OptionMode == 2) ddl_NextQuestion.Enabled = false;
            }
            else
            {
                tr_OptionList.Visible = false;
            }
            #endregion
        }
    }
    protected void cbl_Result_SelectedIndexChanged(object sender, EventArgs e)
    {
        Label lb_ID = (Label)((CheckBoxList)sender).Parent.FindControl("lb_ID");
        RadioButtonList rbl_Result = (RadioButtonList)((CheckBoxList)sender).Parent.FindControl("rbl_Result");
        CheckBoxList cbl_Result = (CheckBoxList)((CheckBoxList)sender).Parent.FindControl("cbl_Result");
        TextBox tbx_Result = (TextBox)((CheckBoxList)sender).Parent.FindControl("tbx_Result");
        RegularExpressionValidator rev_Result = (RegularExpressionValidator)((CheckBoxList)sender).Parent.FindControl("rev_Result");

        tbx_Result.Visible = false;
        rev_Result.Enabled = false;
        foreach (ListItem item in cbl_Result.Items)
        {
            if (item.Selected)
            {
                QNA_QuestionOption option = new QNA_QuestionBLL(int.Parse(lb_ID.Text)).GetDetailModel(int.Parse(item.Value));
                if (option.CanInputText == "Y")
                {
                    tbx_Result.Visible = true;
                    if (rev_Result.ValidationExpression != "") rev_Result.Enabled = true;
                    break;
                }
            }
        }
    }
 protected void gv_List_RowDeleting(object sender, GridViewDeleteEventArgs e)
 {
     int i =Int32.Parse( gv_List.DataKeys[e.RowIndex].Value.ToString());
     QNA_QuestionBLL q = new QNA_QuestionBLL((int)ViewState["ID"]);
     q.DeleteDetail(i);
     gv_List.BindGrid<QNA_QuestionOption>(new QNA_QuestionBLL((int)ViewState["ID"]).Items);
 }