2012-02-09 44 views
2

我有一個GridView作爲下面的圖片:如何計算在asp.net GridView中的JavaScript兩個日期之間的天數的ItemTemplate文本框

gridview

我在GridView的ItemTemplate中的文本框中。我想計算兩個日期之間的天數,並用值填充上一個文本框。我可以在OnTextChanged事件中完成,但我不想回發。 PLZ讓我如何使用javascript函數?(傳遞文本框的值並填充文本框)

   <asp:TemplateField HeaderText="Date of Submission for Xerox review" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
       <EditItemTemplate> 
       <asp:TextBox ID="IDDtXerox" Text='<%# Eval("Date_Xerox_Review") %>' BorderWidth="1" runat="server"></asp:TextBox> 
          <ajaxToolkit:CalendarExtender ID="CalendarExtender3" runat="server" Format="dd/MM/yyyy" 

             TargetControlID="IDDtXerox" /> 
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="txtNewIDDtXerox" BorderWidth="1" runat="server"></asp:TextBox> 
       <ajaxToolkit:CalendarExtender ID="CalendarExtender4" runat="server" Format="dd/MM/yyyy" 

             TargetControlID="txtNewIDDtXerox" /> 
       </FooterTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lblIDDtXerox" Font-Size="Smaller" Text='<%# Bind("Date_Xerox_Review") %>' runat="server"></asp:Label> 
      </ItemTemplate> 

      <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Date of ID Acceptance/Rejection" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
       <EditItemTemplate> 
       <asp:TextBox ID="IDDtAccRej" Text='<%# Eval("Date_Acceptance_Rejection") %>' BorderWidth="1" runat="server"></asp:TextBox> 
       <ajaxToolkit:CalendarExtender ID="CalendarExtender5" Animated="true" runat="server" Format="dd/MM/yyyy" TargetControlID="IDDtAccRej" /> 
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="txtNewIDDtAccRej" BorderWidth="1" AutoPostBack="true" OnTextChanged="txtNewIDDtAccRej_TextChanged" runat="server"></asp:TextBox> 
       <ajaxToolkit:CalendarExtender ID="CalendarExtender6" runat="server" Format="dd/MM/yyyy" TargetControlID="txtNewIDDtAccRej" /> 
       </FooterTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lblIDDtAccRej" Font-Size="Smaller" Text='<%# Bind("Date_Acceptance_Rejection") %>' runat="server"></asp:Label> 
      </ItemTemplate> 
      <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
      </asp:TemplateField> 

       <asp:TemplateField HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10" HeaderText="ID Process Cycle Time (Weekdays)"> 
       <EditItemTemplate> 
       <asp:TextBox ID="txtProcessTime" BackColor="#E3C5AF" Text='<%# Eval("ID_Process_Time") %>' ReadOnly="true" Width="50px" BorderWidth="1" runat="server"></asp:TextBox> 
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="txtNewProcessTime" BackColor="#E3C5AF" ReadOnly="true" Width="50px" BorderWidth="1" runat="server"></asp:TextBox> 
       </FooterTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lblNewProcessTime" Font-Size="Smaller" Text='<%# Bind("ID_Process_Time") %>' runat="server"></asp:Label> 
      </ItemTemplate> 
      <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
      </asp:TemplateField> 

請幫忙?

+0

在哪種格式日期存在? – 2012-02-09 06:11:51

+0

日期格式爲:2012年9月2日 – Tarun 2012-02-09 06:44:12

回答

2
<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <script type="text/javascript"> 
      function calculateDifference() 
      { 
       var startDate = document.getElementById("start_date").value; 

       if(startDate == "") 
       { 
        alert("Enter start date"); 
        return; 
       } 
       var endDate = document.getElementById("end_date").value; 
       if(endDate == "") 
       { 
        alert("Enter end date"); 
        return; 
       } 

       var startDateSplit = startDate.split("/"); 
       var endDateSplit = endDate.split("/"); 

       var stDate = new Date(startDateSplit[2], startDateSplit[0]-1, startDateSplit[1]); 
       var enDate = new Date(endDateSplit[2], endDateSplit[0]-1, endDateSplit[1]); 


       var difference = (enDate.getTime() - stDate.getTime())/(1000*60*60*24); 

       document.getElementById("date_difference").value = difference; 
      } 
     </script> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <td> 
        <input type="text" name="start_date" id="start_date" onchange="calculateDifference()" /> 
       </td> 
       <td> 
        <input type="text" name="end_date" id="end_date" onchange="calculateDifference()" /> 
       </td> 
       <td> 
        <input type="text" name="date_difference" id="date_difference" /> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 
+0

Thanx for reply..How將date1,date2值從GridView Textboxes傳遞給javascript函數。和HW來調用JavaScript函數?由於不熟悉javascript – Tarun 2012-02-09 05:27:00

+0

完整代碼被添加,請看看。我使用mm/dd/yyyy格式的日期 – 2012-02-09 06:09:35

+0

感謝您的代碼。但我的文本框在asp.net gridview ItemTemplate中。此代碼是否也可以使用? – Tarun 2012-02-09 06:40:03

1

通過該方法嘗試:

詞根記憶功能 2.pass文本框的值 3.填充文本框

function get_date_difference(t1,t2){ 
      // t1="10/10/2006" ; 

      // t2="15/10/2006"; 


     //Total time for one day 
      var one_day=1000*60*60*24; 
    //Here we need to split the inputed dates to convert them into standard format 
    for furter execution 
      var x=t1.split("/");  
      var y=t2.split("/"); 
     //date format(Fullyear,month,date) 

      var date1=new Date(x[2],(x[1]-1),x[0]); 

      var date2=new Date(y[2],(y[1]-1),y[0]) 
      var month1=x[1]-1; 
      var month2=y[1]-1; 

      //Calculate difference between the two dates, and convert to days 

      Diff=Math.ceil((date2.getTime()-date1.getTime())/(one_day)); 
    //Diff gives the diffrence between the two dates. 
     return Diff 
} 
+0

沒有得到如何將gridview項目模板中的textboxes值傳遞給javascript函數。 – Tarun 2012-02-09 06:45:47

+0

難道你沒有獲得在gridview itemtemplate中的textboxes值嗎?或者你無法傳遞給JavaScript函數? – 2012-02-09 06:49:58

+0

請參閱此鏈接:[獲取和設置gridview ItemTemplate的值](http://www.webdeveloper.com/forum/showthread.php?t=132648) – 2012-02-09 07:03:39

相關問題