2016-12-26 15 views
1

データベースの複数のフィールドから値を読み取り、それぞれを独自の1次元配列にするプロシージャをC#コードビハインドに用意しました。今私はこれらの値を受け取り、サーマルプリンタで印刷できるようにクライアント側に渡す必要があります。配列をコードビハインドルーチンからjavascriptに渡す

私はJavaScriptで
 Public String[] PayType = new string[DetailLines]; 
     Public String[] PayQuantity = new string[DetailLines]; 
     Public String[] PayAmount = new string[DetailLines]' 
     Public String Location; 

     Protected Void PrintReceipt() 
     *Miscellaneous code down to this point not shown.* 
     **DetailLines comes from record count** 
     Location = "CA"; 
     PayType = new string[DetailLines]; 
     PayQuantity = new string[DetailLines]; 
     PayAmount = new string[DetailLines]' 
     foreach (DataRow row in dtPOSdetail.Rows) 
     { 
      PayType[LineNumber] = row["fldDescription"].ToString(); 
      PayQuantity[LineNumber] = row["fldQuantity"].ToString(); 
      PayAmount[LineNumber] = string.Format("{0:C}", 
      Decimal.Parse(row["fldAmount"].ToString())); 
      LineNumber++; 
     } 

私が持っている:

var getLocation = '<%= Location %>' 
var getPayType = '<%= PayType %>' 
var getPayQuantity = '<%= PayQuntity %>' 
var getAmount = '<%= PayAmount %>' 

私はラインアイテムを確立するために、私のプリンタのセットアップで3つの配列をループを行うことができるようにしたい私は私のコードビハインドで

request += builder.createTextElement({ data: "Location: " + GetLocation + "\\n" }); 
for (int i = 0; i < PayType.Length; i++) 
{ 
    request += builder.createTextElement({ data: PayType[i] + "\\x9" + PayQuantity[i] + "\\x9" + "  " + PayAmount[i] + "\\n"}); 
} 

私は場所を印刷できますが、各配列の値は 'System.String []として表示されます。私が読んだ大部分のトピックは、 'myarray( "apples"、 "oranges"、 "peaches")としてロードされている配列の表示を混乱させるものです。また、配列のシリアル化に関する話題も見てきましたが、それはどちらかというと明確ではありません。 私が示したことを達成するためのどのような例も非常に高く評価されます。カミソリ(またはあなたのveiwエンジン)は、オブジェクトのToString()メソッドを呼び出しているので、これが起こる おかげ チャールズ

答えて

1

は、ビュースクリプトに注入されます。

文字列配列の場合、これはあなたが見ているものを生成します: System.String[]。 javascriptの変数は、変数をインスタンス化するJSON形式のオブジェクトを期待していると以下のように

、単にあなたの配列をJSONにシリアライズすることができます

var getPayType = <%= Newtonsoft.Json.JsonConvert.SerializeObject(PayType) %>;

+0

はありがとうございました!これはまさに私が楽しみにしていたものです。うまくいけば、物事を敷設し、あなたの簡潔な答えは、これは他の誰かを助けることができます。 – Charles

関連する問題