javascript - 在中断 Javascript 中拆分字符串(来自 C# 函数)

标签 javascript asp.net asp.net-ajax

您好,我的 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”就足够了

我该如何解决这个问题?

谢谢


我试过做以下但还是不行

我的 Canvas 或变量“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't do line breaks?

关于javascript - 在中断 Javascript 中拆分字符串(来自 C# 函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389173/

相关文章:

asp.net - Elastic Search 5.0重复删除/优化

.net - ASP.NET MVC AJAX 文档在哪里?

jquery - 在 Ajax Post 之后通过 jQuery 刷新 PartialView

javascript - 我无法使用 REACT 中的 fetch 将图像上传到后端

javascript - 使用 React Native 创建 Firebase Child ref

c# - ASP.NET MVC3 将文件复制到共享映射驱动器 - 访问路径被拒绝

ajax - 您如何衡量 Web 服务调用的进度?

javascript - 谷歌可视化 : Organizational Chart background color for Node not working

javascript - 元素类中的 CSS @media - 使用 CSS 变量

asp.net - VS2008 中的许多 ascx-to-one ascx.cs 错误