在break Javascript中拆分字符串(来自c#函数)

Split string (from C# functions) in breaks Javascript

本文关键字:来自 函数 字符串 break Javascript 拆分      更新时间:2023-09-26

嗨,我有一个代码在我的asp请求一些小时从mysql数据库

c#代码
        string cmd = "SELECT DepartureTime FROM dbtest";
        MySqlCommand mycmd = new MySqlCommand(cmd, conn);
        MySqlDataReader dataReader = mycmd.ExecuteReader();
        while (dataReader.Read())
        {
            times += dataReader.GetString(0) + "'n";
        }
        dataReader.Close();
Javascript

 function SendForm() {
       PageMethods.ConnectDatabase(OnSucceeded, OnFailed);
        function OnSucceeded(msg) {
            var vierkant = document.getElementById("Vierkant");
            var context = vierkant.getContext('2d');
            context.font = '15pt Calibri';
            context.fillStyle = 'blue';
            context.fillText('Departure Times bus X19:' + msg, 150, 100);
        }

当我在javascript中调用这个函数时它会在一行中给出所有的小时

我喜欢在每个结果之后休息一下,我认为在我的c#代码中放一个"'n"就足够了

我该如何解决这个问题?

感谢

我试着做以下操作,但仍然不起作用

是否有什么问题与我的画布或与变量'msg'?

Javascript:

 var msg;
    function Connect() {
        PageMethods.ConnectDatabase(OnSucceeded, OnFailed);
        function OnSucceeded(msg)
        {
            //Set context + Formatting
            var context = document.getElementById("canvas").getContext('2d');
            context.font = '15pt Calibri';
            context.textAlign = "center";
            context.textBaseline = "top";
            context.fillStyle = 'blue';
            //Prepare textarea value to be drawn as multiline text
            var textval = msg.value;
            var textvalArr = toMultiLine(textval);
            var linespacing = 25;
            var startX = 0;
            var startY = 0;
            //Draw each line on canvas.
            for (var i = 0; i < textvalArr.length; i++) {
                context.fillText(textvalArr[i], x, y);
                y += linespacing;
            }
        }
        //Create an array where the <br/> tag splits the values.
        function toMultiLine(text) {
            var textArr = new Array();
            text = text.replace(/'n'r?/g, '<br/>');
            textArr = text.split("<br/>");
            return textArr;

            /*var vierkant = document.getElementById("canvas");
            var context = vierkant.getContext('2d');
            //formatting
            context.font = '15pt Calibri';
            context.fillStyle = 'blue';
            context.fillText('Departure Times bus X19:' + msg, 150, 100);*/
        }
        function OnFailed(error) {
            alert("failed");
        }
    }
HTML:

  <form id="Form1" runat="server">

    <input type="button" onclick="return Connect()" value="Bushours:" />
<canvas id="canvas" width="1900" height="200">Test<code>&lt;canvas&gt;</code> element.  
</canvas>

如果您想要中断,请使用<br/>而不是'n

那么你的c#代码将是这样的:

times += dataReader.GetString(0) + "<br/>";

因为'n在break中没有被解释,而<br/>

在这个答案中有一个如何做到这一点的示例:HTML5 canvas ctx。fillText won'不换行?