【发布时间】:2020-01-22 01:25:21
【问题描述】:
打印页面时出现“无法评估表达式,因为代码已优化”异常。
对于打印,我使用字符串生成器附加 HTML 组件,然后将其放入 Literal,然后将其分配给 Session["ctrl"]。我使用页面名称Print.aspx 和辅助函数PrintHelper。
private void PrintApplication(StudentDetails StudentData )
{
List<StudentAttDetails> itemAtt = new List<StudentAttDetails>();
List<StudentAcadDetails> itemAcad = new List<StudentAcadDetails>();
itemAtt = StudentData.AttDetails;
itemAcad = StudentData.AccDetails;
try
{
StringBuilder sb = new StringBuilder();
sb.Append("<div class=' peopledetails-piims'>");
sb.Append("<table class='blueTable'>");
sb.Append("<tr>");
sb.Append("<td colspan='2' style='font-size:1em;font-weight:bold;text-align-left;'>स्कूल की जानकारी, स्थिति व जगह</td><td colspan='2' style='font-size:1.2em;font-weight:bold;text-align-right;'>आवेदन क्रमांक:" + "</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td>यूडाइस कोड:</td><td>" + StudentData.UdiseCode + "</td><td>सत्र:</td><td>" + StudentData.Session + "</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td>कक्षा: </td><td>" + StudentData.Class + "</td><td>मधायम:</td><td>" + StudentData.Medium + "</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td>आवेदन क्रमांक: </td><td>" + StudentData.ApplicationId + "</td><td>विध्यार्थी का नाम:</td><td>" + StudentData.StudentName + "</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td>जाति </td><td>:</td><td>" + StudentData.Caste + "</td><td>जन्मतिथि </td><td>:</td><td>" + StudentData.DOB + "</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td>अभिभावक का नाम </td><td>:</td><td>" + StudentData.ParentsName + "</td><td>घर का पता </td><td>:</td><td>" + StudentData.Address + "</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td>दाखिले का वर्ष </td><td>:</td><td>" + StudentData.YearOfJoin + "</td>");
sb.Append("</tr>");
sb.Append("</table>");
//sb.Append("</br>");
//sb.Append("</br>");
sb.Append("<table class='blueTable'>");
sb.Append("<thead>");
sb.Append("<tr>");
sb.Append("<td colspan='3' style='font-size:1em;font-weight:bold;text-align: center;'>उपस्थिति की जानकारी</td>");
sb.Append("</tr>");
sb.Append("</thead>");
sb.Append("<thead>");
sb.Append("<tr>");
sb.Append("<th>SNo</th><th>वर्ष</th><th>बच्चे की उपस्थिति</th>");
sb.Append("</tr>");
sb.Append("</thead>");
sb.Append("<tbody>");
int snPreferences = 1;
foreach (StudentAttDetails sad in itemAtt)
{
sb.Append("<tr>");
sb.Append("<td>" + snPreferences.ToString() + "</td><td>" + (sad.Year).ToString() + "</td><td>" + sad.Attendance + "</td>");
sb.Append("</tr>");
snPreferences += 1;
}
sb.Append("</tbody>");
sb.Append("</table>");
//sb.Append("</br>");
//sb.Append("</br>");
sb.Append("<table class='blueTable'>");
sb.Append("<thead>");
sb.Append("<tr>");
sb.Append("<td colspan='3' style='font-size:1em;font-weight:bold;text-align: center;'>विवरण की जानकारी</td>");
sb.Append("</tr>");
sb.Append("</thead>");
sb.Append("<thead>");
sb.Append("<tr>");
sb.Append("<th>SNo</th><th>वर्ष</th><th>ग्रेड</th><th>कुल बच्चो की संख्या</th><th>कक्षा मे प्राप्त श्रेणी</th>");
sb.Append("</tr>");
sb.Append("</thead>");
sb.Append("<tbody>");
int sno = 1;
foreach (StudentAcadDetails sacd in itemAcad)
{
sb.Append("<tr>");
sb.Append("<td>" + sno.ToString() + "</td><td>" + (sacd.Year).ToString() + "</td><td>" + sacd.Grade.ToString() + "</td><td>" + (sacd.TotalStudent).ToString() + "</td><td>" + (sacd.Rank).ToString() + "</td><td>");
sb.Append("</tr>");
sno += 1;
}
sb.Append("</tbody>");
sb.Append("</table>");
sb.Append("</div>");
ltlPrint.Text = "";
ltlPrint.Text = sb.ToString();
Session["ctrl"] = null;
#region Print Application
Session["ctrl"] = ltlPrint;
ClientScript.RegisterStartupScript(typeof(Page), "onclick", "<script language=javascript>window.open('../Print.aspx','PrintMe','height=700px,width=700px,scrollbars=1');</script>");
#endregion
}
catch (Exception ex)
{
}
}
打印.aspx
protected void Page_Load(object sender, EventArgs e)
{
try
{
Control ctrl = (Control)Session["ctrl"];
PrintHelper.PrintWebControlStudentApp(ctrl);
}
catch(Exception ex)
{
}
}
我在Print.aspx 页面上遇到错误,catch() 抛出异常:
由于代码已优化,无法计算表达式
【问题讨论】:
标签: c# asp.net multithreading printing