我正在尝试在我的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();
}
答案 0 :(得分:1)
您的HTML格式不正确,并且您使用的是无效的结束标记。
此外,如果您不在第二个代码行中添加\"
,那么您的浏览器会将字体系列中的空格视为html属性之间的分隔。
这是你应该这样做的方式:
"<center><p style=\"font-size:24px;font-family:'Palatino Linotype'\"><b>" + Title1.Text + "</b></p></center>";