2011-02-27 115 views
0

我正在開發一個sharepoint webpart,在這裏我有2個日期時間控件,一個是From date和另一個是To date,而且我寫了一個javascript函數來驗證用戶輸入的日期。如果To date小於From Date,它會發出警報。並且我將這個JS函數添加到按鈕點擊作爲一個屬性。但是這個函數在我點擊的時候沒有執行。Sharepoint日期時間控件

我加入我的代碼以這樣的:

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

我叫這個功能在Web部件的Createchildcontrol方法..

而且我加入這個代碼的Web部件的OnLoad事件

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

請幫我解決這個問題...

FYI:This btnView(按鈕控制),在運行時動態創建..提前

謝謝...

回答

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不變,現在你可能會看到什麼是錯的 - 讓我們更新。