проверка во время выполнения - PullRequest
0 голосов
/ 06 мая 2011

У меня есть панель на веб-странице asp.net, и я создаю флажок во время выполнения. Я хочу проверить флажок, обязательное поле проверки при отправке формы.

вот мой код:

cv = new CustomValidator ();

                        cv.ID = "cv" + "_" + dt.Rows[0]["RefQueID"].ToString(); 

                        cv.ValidationGroup = "grp";
                        cv.Display = ValidatorDisplay.None;

                        cv.ErrorMessage = "- Question " + intQuestionNo.ToString();
                        cv.ClientValidationFunction = "chkCount";
                        cv.Attributes.Add("rfvid", cv.ID.ToString());
                        //this portion of code is for custom validation javascript function
                        StringBuilder sb = new StringBuilder();
                        sb.Append("<script type='text/javascript'> function chkCount(sender,args) { ");
                        sb.Append(" args.IsValid = GetChk(document.getElementById('ctl00_ContentPlaceHolder1_" + cbl.ID.ToString() + "'))");
                        sb.Append(" } </script>");
                        Page page = HttpContext.Current.Handler as Page;
                        page.RegisterStartupScript("_Check", sb.ToString());

и в моей функции JavaScript я возвращаю это:

функция GetChk (chkbox, args) {

       if (!isConfirmed) {
           alert('hi');

           var chkBoxList = document.getElementById(chkbox.ClientID);
           var chkBoxCount = chkBoxList.getElementsByTagName("input");

           for (var i = 0; i < chkBoxCount.length; i++) {
               if (chkBoxCount[i].checked == true) {
                   return true;
               }
           }

           return false;
       }
       return true;
   }

но я не получаю значение флажка ...

требуемое значение: = ctl00_ContentPlaceHolder1_tc_hospital_improvement_features_tp_Reflection_cbl_116_0

Фактическое значение: = ctl00_ContentPlaceHolt_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_p_t_t_p_t__t_t_t_t__t_t_t_t_t_t__t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_p

1 Ответ

0 голосов
/ 09 мая 2011

сначала получите сгенерированный во время выполнения элемент управления в файл codebehind из файла класса.а затем, во-вторых, после получения свойства элемента управления мы можем проверить список checbox.

  1. Получить элемент управления в файл codebehind из файла класса.

    CheckBoxList cbl = (CheckBoxList)pnlref.FindControl("cbl_116");
    
  2. обеспечивает проверку javascript в списке сгенерированных флажков во время выполнения.

    function GetChk(chkbox, args) {
        if (!isConfirmed) {
            var chkBoxList = document.getElementById('ctl00_ContentPlaceHolder1_tc_hospital_improvement_features_tp_Reflection_cbl_116');
            var chkBoxCount = chkBoxList.getElementsByTagName("input");
            for (var i = 0; i < chkBoxCount.length; i++) {
                if (chkBoxCount[i].checked == true) {
                    return true;
                }
            }
            return false;
        }
        return true;
    }
    
...