Sharepoint Datetime контроль - PullRequest
       20

Sharepoint Datetime контроль

0 голосов
/ 27 февраля 2011

Я разрабатываю одну веб-часть sharepoint, в которой у меня есть 2 элемента управления временем даты, один для даты From, а другой для To Date, и я написал одну функцию javascript для проверки даты, введенной пользователем. Если до даты меньше, чем с даты, он будет оповещения. и я добавил эту функцию JS к нажатию кнопки в качестве атрибута. Но эта функция не выполняется, пока я нажимаю.

Я добавляю свой код с этим:

  void Registerscript()
    {
        string jc = @"<script> function DateMsg()
             {{ 

                var Fromdate = document.getElementById('{0}').value;
                var Todate = document.getElementById('{1}').value;

                 if(Fromdate != '' && Todate != '')
                {{             
                if(Date.parse(Fromdate) > Date.parse(Todate))
                  alert('From Date should be earlier than To Date.');
                }}

             }}</script> ";
        jc = string.Format(jc, dtFromdate.ClientID + "_dtFromdateDate", dtTodate.ClientID + "_dtTodateDate");
        this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", jc);
    }

Я вызвал эту функцию в методе Createchildcontrol веб-части.

И я добавил этот код в событие OnLoad веб-части

btnView.Attributes.Add("onclick", "DateMsg();");

Пожалуйста, помогите мне решить эту проблему ...

К вашему сведению: btnView (кнопка управления) динамически создается во время выполнения.

Заранее спасибо ...

1 Ответ

1 голос
/ 27 февраля 2011

Я бы пошел другим путем, позволяя упростить отладку.

Имеем функцию в файле .aspx:

<script type="text/javascript">
function DateMsg() {
    if (typeof _fromDateTextboxID != "undefined") {
        var oFromDateInput = document.getElementById(_fromDateTextboxID);
        var oToDateInput = document.getElementById(_toDateTextboxID);

        if (!oFromDateInput) {
            alert("element with ID of " + _fromDateTextboxID + " does not exist");
            return;
        }

        if (!oToDateInput) {
            alert("element with ID of " + _toDateTextboxID + " does not exist");
            return;
        }

        var strFromdate = oFromDateInput.value;
        var strTodate = oToDateInput.value;
        if(strFromdate.length == 0 || strTodate.length == 0) {
            alert("one or more values empty");
            return;
        }

        var dtFromDate = Date.parse(strFromdate);
        var dtToDate = Date.parse(Todate);
        if(dtFromDate > dtToDate) {
            alert('From Date should be earlier than To Date.');
        }

    }
    else {
        alert("ID not initialized");
    }
}
</script>

И выводим только идентификатор из кода:

string jc = string.Format("var _fromDateTextboxID = \"{0}\"; var _toDateTextboxID = \"{1}\"; ", dtFromdate.ClientID + "_dtFromdateDate", dtTodate.ClientID + "_dtTodateDate");
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", jc, true);

Оставьте кнопку на кнопке без изменений, и теперь вы можете увидеть, что не так - держать нас в курсе.

...