使用C#中的空格应用HTML font-family的问题

时间:2017-01-20 17:11:52

标签: c# html visual-studio

我正在尝试在我的Visual Studio Express 2015 for Web中的aspx页面后面的C#代码中编写它时,让我的font-family占用一个简单的问题。我有使用HtmlTextWriter的代码,所以我可以单击页面上的按钮并打印我的gridview。尝试将某些HTML格式应用于页面的“标题”时,font-family不会更改。在分配名称中包含“空格”的字体系列时,这只是一个问题。

string title = "<b><center><p style=font-size:32px;font-family:'Palatino Linotype'>" + Title1.Text + "<p/><center/><b/>";

我尝试过在其他情况下找到的各种方法。如果我只是在页面后面的C#代码中,这种方式有效,但如果我在HtmlTextWriter部分中执行,它在后面的代码中不起作用。

"<b><center><p style=\"font-size:24px;font-family:'Palatino Linotype'\">" + Title1.Text + "<p/><center/><b/>";

任何想法都将不胜感激!

protected void PrintButton_Click(object sender, EventArgs e)
{
    GridView1.PagerSettings.Visible = false;

    GridView1.DataBind();

    StringWriter sw = new StringWriter();

    HtmlTextWriter hw = new HtmlTextWriter(sw);

    sw.Write("<style type=\"text/css\">.gridView caption {color: black;font-size:16pt;font-weight:bold;}</style>");

    GridView1.RenderControl(hw);

    string gridHTML = sw.ToString().Replace("\"", "'")

        .Replace(System.Environment.NewLine, "");

    string title = "<center><p style=\"font-size:32px;font-family:'Palatino Linotype'\"><b>" + Title1.Text + "<b/><p/><center/>";  //This formats the title above the gridview when printing     

    StringBuilder sb = new StringBuilder();

    sb.Append("<script type = 'text/javascript'>");

    sb.Append("window.onload = new function(){");

    sb.Append("var printWin = window.open('', '', 'left=0");

    sb.Append(",top=0,width=1000,height=600,status=0');");

    sb.Append("printWin.document.write(\"");

    sb.Append(title);  //This displays the title above the gridview

    sb.Append(gridHTML);  //This displays the gridview

    sb.Append("\");");

    sb.Append("printWin.document.close();");

    sb.Append("printWin.focus();");

    sb.Append("printWin.print();");

    sb.Append("printWin.close();};");

    sb.Append("</script>");

    ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());

    GridView1.PagerSettings.Visible = true;

    GridView1.DataBind();

}

1 个答案:

答案 0 :(得分:1)

您的HTML格式不正确,并且您使用的是无效的结束标记。

此外,如果您不在第二个代码行中添加\",那么您的浏览器会将字体系列中的空格视为html属性之间的分隔。

这是你应该这样做的方式:

"<center><p style=\"font-size:24px;font-family:'Palatino Linotype'\"><b>" + Title1.Text + "</b></p></center>";