【问题标题】:Sharepoint Datetime controlSharepoint 日期时间控制
【发布时间】:2011-07-05 04:39:30
【问题描述】:

我正在开发一个共享点 webpart,在这个我有 2 个日期时间控件,一个用于起始日期,另一个用于截止日期,我编写了一个 javascript 函数来验证用户输入的日期。如果 To date 小于 from Date,它将发出警报。我将此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);
    }

我在webpart的Createchildcontrol方法中调用了这个函数..

我在 webpart 的 OnLoad 事件中添加了这段代码

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

请帮我解决这个问题...

仅供参考:这个 btnView(Button control) 是在运行时动态创建的..

提前谢谢...

【问题讨论】:

    标签: c# javascript sharepoint web-parts datetimepicker


    【解决方案1】:

    我会采用不同的方式,以便更轻松地调试。

    在.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>
    

    并且只输出后面代码中的ID:

    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);
    

    保持按钮 onclick 不变,现在您可能会发现问题所在 - 让我们保持最新状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多