2017-08-15 10 views
0

2つのaspxページ(これらのaspxページはSharePoint Designerに格納されています)間でデータを渡す際に助けが必要です。私は、私たちのサイトのメトリックのための簡単な計算を行うJavaScriptをいくつか作成しました。JavaScriptを使用して2つのaspxページ間でデータを渡す

https://tandemhospitalpartners.sharepoint.com/SitePages/Home.aspx

次のJavaScriptは、上記のaspxリンクです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 
        "http://www.w3.org/TR/html4/loose.dtd"> 
 
<html> 
 
<head> 
 
    <script type="text/javascript"> 
 
     window.onload = function() 
 
     { 
 

 
     } 
 
     
 
     function p1() 
 
     { 
 

 
      totalPts = 137; 
 
      setTotalPts(totalPts); 
 
      
 
      
 
      divId = document.getElementById('avg'); // element represents the ID 'countdown' for the div 
 

 
      today = new Date(); //this represents todays date in the following format 
 
      //Weekday ex. "Tue" 
 
      //Month ex. "Aug" 
 
      //Todays Date ex. "08" 
 
      //Year ex. "2017" 
 
      //Time ex. "13:44:54 GMT - 0500 (Central Daylight Time" 
 

 

 
      svOpen = new Date(2017, 06, 17); // this represents the first day we accepted patients 
 
      
 

 
      one_day = 1000 * 60 * 60 * 24; 
 
      //milliseconds 
 
      //minutes 
 
      //seconds 
 
      //hours 
 

 

 
      //We have been open for 23 days 
 

 

 
      daysOpen = Math.ceil((today.getTime() - svOpen.getTime())/(one_day)); 
 
      //subtracting SVNH open date from current date 
 

 

 

 

 

 

 
      
 

 

 
      
 

 
      avgPts = parseFloat(totalPts)/parseFloat(daysOpen); 
 

 
      
 
      divId.innerHTML ="Average Patients Per Day: "+ avgPts.toFixed(1); 
 
     } 
 
     function GetDays(element) 
 
     { 
 
      
 
      var el = document.getElementById(element); 
 
      today = new Date(); 
 
      var cmas = new Date(today.getFullYear(), 6, 12); 
 
      if (today.getMonth() == 6 && today.getDate() > 13) { 
 
       cmas.setFullYear(cmas.getFullYear() + 1); 
 
      } 
 
      var one_day = 1000 * 60 * 60 * 24; 
 
      el.innerHTML ="&nbsp;&nbsp;Days to open the second Hospital: &nbsp;&nbsp;&nbsp;"+Math.ceil((cmas.getTime() - today.getTime())/(one_day)); 
 
     } 
 
     function setTotalPts(totalPts) 
 
     { 
 
      totId = document.getElementById("leOne"); 
 

 
      totId.innerHTML = "This is my total patients: " + totalPts.toString(); 
 

 

 
     } 
 

 
    </script> 
 
</head> 
 
<body onload="p1(); GetDays('count'); setTotalPts();"+"text"> <!-- this onload is passing the div ID to the function p1(element) 
 
             element represents the ID --> 
 

 
<div id='count' style="color: #e51400 ; 
 
font-weight : 500;"></div> 
 
</body> 
 

 

 
<body> 
 

 
<div id='avg' style="color: #e51400 ; 
 
font-weight : 500;"></div> 
 

 

 

 
</body> 
 

 
<body> 
 

 
<div id='leOne' style="color: #e51400 ; 
 
font-weight : 500;"></div> 
 

 

 

 

 
</body> 
 
</html> 
 

 

 
<!-- to keep a running count of the days i will have to subtract svOpen from todaysDate

私の目標は、異なるASPXファイル上にあるHTMLのIDにtotalPtsを渡すことです。

これは、送信したいHTML IDを含むaspxファイルへのリンクです。

https://tandemhospitalpartners.sharepoint.com/ININD/SitePages/Home.aspx

私は本当に混乱しています場所です。私はこの結果を達成する方法がわかりません。 JavaScriptを使ってどのようにこれを行うことができるかというアイデアがあれば、私は大いに感謝しています!

答えて

1

ウェブがステートレス環境であるため、別のページのクライアント側から別のページのhtmlにアクセスすることはできません。しかし、最初のページからクエリーストリングを介して次のページにデータを渡すか、またはデータをlocalStorageに保存してから、次のページに移動してlocalStorageからデータを取得することができます。私はそれがちょうどあなたが渡したい数字のように見えるとしてQuerystringを好む。

あなたは、クエリ文字列からtotalPoints先のページに続いて2番目のページを開くボタン

<asp:Button runat="server" ID="btnNext" OnClientClick="location.href='https://tandemhospitalpartners.sharepoint.com/ININD/SitePages/Home.aspx?totalPointes=' + getTotalPoints()" Text="Inind Home"></Button> 

を持っており、要素に保存したとします。例えば

$("#SomeID").val(getvaluefromQuerystring()); 
+0

あなたの応答をありがとうございました。あなたが気にしないなら、まだいくつか質問があります。 2番目のページでjavascript関数を作成する必要がありますか?ボタンでこれを行う必要がありますか?そして、最初のページにあるjavascriptにgetTotalPoints()メソッドを作成する必要がありますか?私の理解から、getTotalPoints()はJSの最初のページにあるメソッドで、使用したい変数を返すリターンラインがあるようですね。 – hcienfue

0
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script 
    src="https://code.jquery.com/jquery-3.2.1.js" 
    integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" 
    crossorigin="anonymous"></script> 

    <script> 
     $(document).ready(function() { 
      $("#dvValue").html(getUrlParameter("totalPointes")); 
     }); 

     //This function gets the querystring value from the querystring 
     function getUrlParameter(name) { 
      name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); 
      var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); 
      var results = regex.exec(location.search); 
      return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); 
     }; 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <div id="dvValue"></div> 
    </div> 
    </form> 
</body> 
</html> 
+0

私はクエリ文字列のパラメータ "totalPointes"から値を取得し、その値をID "dvValue"のdivに保存しています –

関連する問題