我在C#代码隐藏中有一个过程,它从数据库中的几个字段读取值,并将每个字段放入其自己的1维数组中。现在我需要获取这些值并将它们传递给客户端,以便我可以在热敏打印机上打印出来 在我的代码隐藏中,我有:
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++;
}
在我的JavaScript中我有:
var getLocation = '<%= Location %>'
var getPayType = '<%= PayType %>'
var getPayQuantity = '<%= PayQuntity %>'
var getAmount = '<%= PayAmount %>'
我希望能够在我的打印机设置中循环浏览三个数组来建立订单项。
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"});
}
我可以打印出Location,但每个数组的值显示为'System.String []。我读到的大多数主题都令人困惑,显示数组被加载为'var myarray(“apples”,“oranges”,“peaches”)。我也看过有关序列化数组的话题,但这一点也不清楚。 任何如何完成我所展示的内容的例子将不胜感激。 谢谢 查尔斯
答案 0 :(得分:1)
这是因为Razor(或您的veiw引擎)正在调用注入到视图脚本中的对象的ToString()
方法。
使用字符串数组类型生成您所看到的内容:
System.String[]
。
由于javascript变量期望JSON格式化对象实例化变量,因此您可以简单地序列化为JSON数组,如下所示:
var getPayType = <%= Newtonsoft.Json.JsonConvert.SerializeObject(PayType) %>;