【问题标题】:Pass Array from code behind routine to javascript将数组从例程后面的代码传递给 javascript
【发布时间】:2017-05-11 05:28:06
【问题描述】:

我在 C# 代码隐藏中有一个过程,它从数据库中的多个字段读取值并将每个字段放入自己的一维数组中。现在我需要获取这些值并将它们传递给客户端,以便我可以在热敏打印机上打印出来。
在我的代码隐藏中,我有:

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

我可以打印出位置,但我的每个数组的值都显示为“System.String[]。我读过的大多数主题都令人困惑,因为数组被加载为 'var myarray("apples", "oranges", "peaches")。我还看到有关序列化数组的主题,但这也不清楚。 任何有关如何完成我所展示的内容的示例将不胜感激。 谢谢 查尔斯

【问题讨论】:

    标签: javascript c# arrays


    【解决方案1】:

    发生这种情况是因为 Razor(或您的 veiw 引擎)正在调用被注入视图脚本的对象的 ToString() 方法。

    使用字符串数组类型会产生您所看到的内容: System.String[].

    由于 javascript 变量需要一个 JSON 格式的对象来实例化变量,您可以简单地将您的数组序列化为 JSON,如下所示:

    var getPayType = &lt;%= Newtonsoft.Json.JsonConvert.SerializeObject(PayType) %&gt;;

    【讨论】:

    • 谢谢!这正是我所期待的。希望通过我的安排和您的简明回答,这可以对其他人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2014-09-26
    • 2013-06-22
    • 2011-09-05
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多