hi all,
I am developing a web application. I have loaded some block of text into the text box. Now i want to print only the contents of the text box.Can anybody help me regarding since i am new to asp.net
thanks in advance
Short practical summary and a robust method that avoids postbacks (ties to and suggestions)
For printing exactly what a user typed into an ASP.NET textbox/textarea, prefer a client-side solution so the page does not post back and the original spacing/line breaks are preserved. already pointed out the server/client difference and roundtrips; suggested opening a new window (that works but can be blocked). The approach below copies the textbox text into a print-only element, preserves whitespace, uses textContent (safe against accidental HTML), and calls window.print() — no popups required.
Example (CSS + JS pattern to attach with OnClientClick for an ASP.NET Button):
<style>
@media print {
body * { visibility: hidden; }
#printArea, #printArea * { visibility: visible; }
#printArea { position: absolute; left: 0; top: 0; width: 100%; }
}
#printArea { white-space: pre-wrap; /* preserves newlines and wrapping */ }
</style>
<script>
function printText(textId) {
var txt = document.getElementById(textId).value || '';
document.getElementById('printArea').textContent = txt; // safe: no HTML injection
window.print();
}
// In ASP.NET: use OnClientClick="printText('<%= TextBox1.ClientID %>'); return false;"
</script>
<div id="printArea" aria-hidden="true"></div> Troubleshooting / notes
.value/textContent for input/textarea content — .innerHTML is not reliable for user-entered text. #printArea, so no popup is needed and layout is consistent. window.print() pattern for best compatibility.Jump to Post— 4advanced 23Print? I guess you mean print on the screen?
Did you check the HttpContext.Current.Response object?
Regards,
Jump to Post— 4advanced 23Hi :=)
Do you want to change the screen during typeing the text in the textbox?
You have to notice that the scripts you write (in the code-behind-page or in the page itself) are serverside executed. Which means that you have to implement some kind of redirection. The redirection …
Jump to Post— 4advanced 23This code should manage your printing with asp.net. It's a piece of javascript;)
<script type="text/javascript"> <!-- function printTextBox_Text(elementId) { var textboxText = document.getElementById(elementId); var windowUrl = 'about:blank'; var windowName = 'Print' + new Date().getTime(); var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0'); printWindow.document.write(textboxText .value); printWindow.document.close(); printWindow.focus(); printWindow.print(); printWindow.close(); } …
Print? I guess you mean print on the screen?
Did you check the HttpContext.Current.Response object?
Regards,
hi,
no i have not used HttpContext.current......
If i use that, will it be possible to print the contents of text box in the sameway as i entered into the text box. Can u please explain me briefly how to use that..
thanks
Hi :=)
Do you want to change the screen during typeing the text in the textbox?
You have to notice that the scripts you write (in the code-behind-page or in the page itself) are serverside executed. Which means that you have to implement some kind of redirection. The redirection has been standarized within the textbox by means of the autopostback option. This, in combination with the TextChange() event is a worse combination because after each keypress the page will be posted back.....
The LostFocus() event gives a much better performance on this but the page still have to make a roundtrip to the server in able to execute the scripts.....
What exactly are you trying to acchieve?
Regards,
Richard
The Netherlands
hi Richard,
Thank you for your reply.Actually i have loaded some block of text into the text box with particular line at particular position. Now i want to print that contents of text box by pressing the print button.Can u please help me to solve this
thanks
This code should manage your printing with asp.net. It's a piece of javascript;)
<script type="text/javascript">
<!--
function printTextBox_Text(elementId)
{
var textboxText = document.getElementById(elementId);
var windowUrl = 'about:blank';
var windowName = 'Print' + new Date().getTime();
var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');
printWindow.document.write(textboxText .value);
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
// -->
</script> I've worked it out to an example for you....
Place 1 textbox control on your page, make it multiline and insert the below stated code in the code-behind page.
Regards,
Richard
The Netherlands
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sPrintScript As System.Text.StringBuilder = New System.Text.StringBuilder
sPrintScript.Append("<script type='text/javascript'>").AppendLine("")
sPrintScript.Append("<!--").AppendLine("")
sPrintScript.Append("function printText(elementId)").AppendLine("")
sPrintScript.Append("{").AppendLine("")
sPrintScript.Append("var printContent = document.getElementById(elementId);").AppendLine("")
sPrintScript.Append("var windowUrl = 'about:blank';").AppendLine("")
sPrintScript.Append("var windowName = 'Print' + new Date().getTime();").AppendLine("")
sPrintScript.Append("var sTextToPrint = printContent.innerHTML;").AppendLine("")
sPrintScript.Append("var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');")
sPrintScript.AppendLine("")
sPrintScript.Append("printWindow.document.write(sTextToPrint);").AppendLine("")
sPrintScript.Append("printWindow.document.close();").AppendLine("")
sPrintScript.Append("printWindow.focus();").AppendLine("")
sPrintScript.Append("printWindow.print();").AppendLine("")
sPrintScript.Append("printWindow.close();").AppendLine("").Append("}").AppendLine("")
sPrintScript.Append("// -->").AppendLine("")
sPrintScript.Append("</script>")
If Not ClientScript.IsClientScriptBlockRegistered("printText") Then _
ClientScript.RegisterClientScriptBlock(Me.GetType(), "printText", sPrintScript.ToString)
Button1.Attributes.Add("onclick", String.Format("return printText('{0}');", Me.TextBox1.ClientID))
End Sub the solution is simple, just open a new window with the content of that textbox using javascript.
hmm... did you read my last post serkansendur? :P
hi richard,
I think the code u have written is VB.NET, Can u please send the code in C#.
thanks
hmm... did you read my last post serkansendur? :P
yes i did, but isnt it too long? you are going to scare him and he will quit programming soon.
from the conversiontool ;)
http://www.developerfusion.com/tools/convert/vb-to-csharp/
protected void // ERROR: Handles clauses are not supported in C# Page_Load(object sender, System.EventArgs e)
{
System.Text.StringBuilder sPrintScript = new System.Text.StringBuilder();
sPrintScript.Append("<script type='text/javascript'>").AppendLine("");
sPrintScript.Append("<!--").AppendLine("");
sPrintScript.Append("function printText(elementId)").AppendLine("");
sPrintScript.Append("{").AppendLine("");
sPrintScript.Append("var printContent = document.getElementById(elementId);").AppendLine("");
sPrintScript.Append("var windowUrl = 'about<b></b>:blank';").AppendLine("");
sPrintScript.Append("var windowName = 'Print' + new Date().getTime();").AppendLine("");
sPrintScript.Append("var sTextToPrint = printContent.innerHTML;").AppendLine("");
sPrintScript.Append("var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');");
sPrintScript.AppendLine("");
sPrintScript.Append("printWindow.document.write(sTextToPrint);").AppendLine("");
sPrintScript.Append("printWindow.document.close();").AppendLine("");
sPrintScript.Append("printWindow.focus();").AppendLine("");
sPrintScript.Append("printWindow.print();").AppendLine("");
sPrintScript.Append("printWindow.close();").AppendLine("").Append("}").AppendLine("");
sPrintScript.Append("// -->").AppendLine("");
sPrintScript.Append("</script>");
if (!ClientScript.IsClientScriptBlockRegistered("printText")) ClientScript.RegisterClientScriptBlock(this.GetType(), "printText", sPrintScript.ToString);
Button1.Attributes.Add("onclick", string.Format("return printText('{0}');", this.TextBox1.ClientID));
} We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.