В моем веб-приложении есть элемент управления asp: Wizard. Мне нужно иметь возможность печатать на любом шаге в мастере и печатать все шаги до этого шага, а не только текущий шаг.
Я добавил кнопку печати на страницу каждого шага и попытался вызвать javascript: window.Print (), но печатается только текущий шаг.
Как мне получить все шаги для печати на 1 странице?
Я хотел бы попытаться заставить это работать в javascript, прежде чем идти по маршруту PDF. Я пытался сделать что-то вроде этого:
protected void Page_Load(object sender, EventArgs e)
{
StringWriter sw = new StringWriter();
HtmlTextWriter tw = new HtmlTextWriter(sw);
this.WizardStep2.RenderControl(tw);
string wizardHtmlContent = sw.ToString().Replace("\r\n", "");
string printScript = @"function printDiv(printpage)
{
var headstr = '<html><head><title></title></head><body>';
var footstr = '</body>';
var newstr = printpage;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr+newstr+footstr;
window.print();
document.body.innerHTML = oldstr;
return false;
}";
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "PrentDiv", printScript, true);
this.Button1.Attributes.Add("onclick", "printDiv('" + wizardHtmlContent + "');");
}
и для aspx:
<form id="form1" runat="server">
<div>
<asp:Wizard ID="Wizard1" runat="server">
<WizardSteps>
<asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
step1
</asp:WizardStep>
<asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2">
step2
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
Но я получаю пропущенную ошибку runat = server в строке 3, когда я пытаюсь визуализировать элемент управления мастера, поэтому я думаю, что мне может понадобиться создать новое окно, а затем вывести строку, прежде чем я ее распечатаю, но не могу Кажется, это работает ... У кого-нибудь есть идеи?