您好我的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><canvas></code> element.
</canvas>
答案 0 :(得分:2)
如果您想要休息,请使用<br/>
代替\n
所以你的C#代码将是这样的:
times += dataReader.GetString(0) + "<br/>";
因为\n
未在中断时被解释,但<br/>
在这个答案中有一个如何执行此操作的示例:HTML5 canvas ctx.fillText won't do line breaks?