내가 여기에 붙어있어,수 없습니다 'System.Web.UI.Control'
나는 인쇄 할 동적 테이블이 있습니다. 그래서 나는 그것을 웹 컨트롤에 전달하기 위해 세션을 만듭니다. 불행히도 원활하게 실행되지 않습니다.
protected void bt_print_click(object sender, EventArgs e)
{
StringWriter sw = new StringWriter();
HtmlTextWriter w = new HtmlTextWriter(sw);
panelBilling.RenderControl(w);
string s = sw.GetStringBuilder().ToString();
Session["ctrl"] = s;
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx?rep=1','PrintMe','height=680px,width=1024px,scrollbars=1');</script>");
}
그리고 Print.aspx.cs 코드 : 여기
내 코드입니다protected void Page_Load(object sender, EventArgs e)
{
Control ctrl = (Control)Session["ctrl"];
PrintHelper.PrintWebControl(ctrl);
}
나는 항상 오류 메시지가 있어요 :
의 개체를 캐스팅 할 수"할 수 없습니다 'System.String'을 입력하여 'System.Web.UI.Control'을 입력하십시오. "
(Control)Session["ctrl"]
부분에
. 나는이 방법을 많은 시간과 문제없이 사용 해왔다. 누구든지 어떤 생각을 가지고 있습니까? 감사.
패널을 '세션'에 저장하면 어떻게됩니까? 'Session [ "ctrl"] = panelBilling;' –
사실 "panelBilling"이 Panel이 아닌 Div의 ID라는 것을 분명히해야합니다. 이전에 Panel을 사용했지만 작동하지 않습니다. 패널이 직렬화 가능하지 않다는 것 (또는 그와 비슷한 것, 정확하게 기억하지 못합니다) – arera
그래서 div에 runat = "server"속성을 추가 했습니까? 넌 그걸하지 말아야 ... –