如题,我在datagrid打印时候,找了个类,但是如果列的内容太长不能够显示,谁有没有超过列长度就换行的打印类啊??谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
解决方案 »
- 怎么才能把写好的windows窗体程序很好的迁移到智能设备窗体程序呢?C#编写的
- 错误 1 将元数据写入文件“E:~SalesCenterUI\obj\Debug\SalesCenterUI.exe”时发生错误 --“存储空间不足,无法完成此
- 获取当前正在运行的所有进程的信息
- ToolStrip中combobox在绑定数据源后,怎么立刻通过程序代码选择第一项为默认选项?
- 如何实现交互式的图像处理(学习ing)?
- 大家来说说!
- VS2003错误"错误:无法在 Web 服务器上启动调试"谁遇到过
- 用正则表达式判断手机号是否合理应该怎么写(手机号共有11位,第一位是1,第二位是3),谢谢,在线等
- 关于水晶报表:VS.NET2002、2003自带的版本是多少?BC#B有没有自带水晶报表?
- C#能不能实现如下功能?
- 求助 远程控制
- 一个简单的调试问题
public string DGPrint(DataGrid dg)
{
int rows = dg.Items.Count;
int col = dg.Columns.Count;
StringBuilder sb = new StringBuilder();
string colHeaders = "<html><body>" +
"<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'VIEWASTEXT></object>"
+ "<table border=1><tr>";
for (int i = 0; i < col; i++)
{
colHeaders = "<td>" +dg.Columns[i].HeaderText.ToString().Trim() + "</td>";
}
colHeaders += "</tr>";
sb.Append(colHeaders); for (int i = 0; i < rows; i++)
{
sb.Append("<tr>");
for (int j = 0; j < col; j++)
{
sb.Append("<td>");
sb.Append(dg.Items[i].Cells[j].Text.ToString().Trim());
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("</table></body></html>");
colHeaders = sb.ToString();
colHeaders += "<script languge='javascript'>WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>";
return (colHeaders);
}
如果是web下打印.你可以控制只打印你的DataGrid部分.也就是说你的datagrid显示成什么样.打印出来就会是什么样
可以用以下代码:<script language="javascript" type ="text/javascript">
function preview()
{
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
}
function winClose()
{
window.close();
}
</script>其中需要在你的grid开始与结束加上下边内容:
<!--startprint-->
<asp:datagrid...></...>
<!--endprint-->
{
Pen blackPen = new Pen(Color.Black, 3);
e.Graphics.DrawString(List.Text, new Font("Monotype Corsiva", 50, FontStyle.Italic), Brushes.Black, 30, 30);
e.Graphics.DrawRectangle(blackPen, 20, 20, 300, 200);
}
private void button1_Click(object sender, EventArgs e)
{
printDocument1.DefaultPageSettings.Landscape = true;
printDocument1.Print();
}