gridview打印出力面的数据包括分页当中未被显示出来的数据呢?

解决方案 »

  1.   

    重新取数据,将取出的数据配置成HTML字符串,然后导出
    public static void GenerateByHtmlString(string Typename, string TempHtml)
            {
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Buffer = true;
                HttpContext.Current.Response.Charset = "utf-8";
                string Filename = Typename + ".xls";
                HttpContext.Current.Response.AppendHeader("Content-Disposition", "online;filename=" + Filename);
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                HttpContext.Current.Response.ContentType = "application/ms-excel";
                //this.EnableViewState = false;
                HttpContext.Current.Response.Write(TempHtml);
                HttpContext.Current.Response.End();
            }Typename为导出的文件名,TempHtml为HTML字符串
      

  2.   

    我要问你的是打印不是导成excel?!!!!!
      

  3.   

    private void 学生成绩浏览表_Load(object sender, System.EventArgs e)
    {
       SeeTable();
    }
    public void SeeTable()
    {
    try
    {
    string myTable="Cheshianpai_Table";
    string myCmd="select distinct(Cheshianpai_Class) from Cheshianpai_Table";
    DataSet set1= mySqlCommand.myDataSet(myCmd,myTable);
    DataTable table1=set1.Tables["myTable"];
    for(int i=0;i<table1.Rows.Count;i++)
    {
    this.comboBox3.Items.Add(table1.Rows[i][0].ToString());
    }
    set1.Clear();
    myTable="Cheshianpai_Table";
    myCmd="select distinct(Cheshianpai_Shijianduan) from Cheshianpai_Table";
    set1= mySqlCommand.myDataSet(myCmd,myTable);
    table1=set1.Tables["myTable"];
    for(int i=0;i<table1.Rows.Count;i++)
    {
    this.comboBox2.Items.Add(table1.Rows[i][0].ToString());
    }
    }
    catch(SqlException x)
    {
    MessageBox.Show(x.Message);
    }
    }
    private void comboBox2_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    this.comboBox1.Items.Clear();
    string myTable="Cheshianpai_Table";
    string myCmd="select distinct(Cheshianpai_Class) from Cheshianpai_Table where Cheshianpai_Shijianduan='"+this.comboBox2.Text+"'";
    DataSet set1= mySqlCommand.myDataSet(myCmd,myTable);
    DataTable table1=set1.Tables["myTable"];
    for(int i=0;i<table1.Rows.Count;i++)
    {
    this.comboBox1.Items.Add(table1.Rows[i][0].ToString());
    }
    }
    private void comboBox3_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    this.comboBox4.Items.Clear();
    string myTable="Student_Table";
    string myCmd="select Student_Name from Student_Table where Student_Class='"+this.comboBox3.Text+"'";
    DataSet set1= mySqlCommand.myDataSet(myCmd,myTable);
    DataTable table1=set1.Tables["myTable"];
    for(int i=0;i<table1.Rows.Count;i++)
    {
    this.comboBox4.Items.Add(table1.Rows[i][0].ToString());
    }
    }
    private void button5_Click(object sender, System.EventArgs e)
    {
    try
    {
    string myTable="Chengjilulu_Table";
    string myCmd="select Chengjilulu_Name as 姓名,Chengjilulu_Bianhao as 编号,Chengjilulu_Shijianduan as 考试时间段,Chengjilulu_Kemu as 考试科目,Chengjilulu_Chengji as 成绩,Chengjilulu_Shifuqiekao as 是否缺考,Chengjilulu_Bukaochengji as 补考成绩 from Chengjilulu_Table where Chengjilulu_Name='"+this.comboBox4.Text+"' and Chengjilulu_Class='"+this.comboBox3.Text+"'order by Chengjilulu_Shijianduan";
    DataSet set1= null;
    set1=mySqlCommand.myDataSet(myCmd,myTable);
    this.dataGrid1.DataSource=set1.Tables[0];
    table1=set1.Tables["Chengjilulu_Table"];
    }
    catch(SqlException x)
    {
    MessageBox.Show(x.Message);
    }
    }
    private void button1_Click(object sender, System.EventArgs e)
    {

    DataSet mySet=new DataSet();
    string tableName = "";
    using (SqlConnection myConnection = new SqlConnection("server=.;database=system;uid=sa;pwd=;"))
    {
    SqlDataAdapter myAdapter = new SqlDataAdapter("select Chengjilulu_Name as 姓名,Chengjilulu_Xuehao as 学生编号,Chengjilulu_Kemu as 科目,Chengjilulu_Chengji as 成绩,Chengjilulu_Class as 班级,Chengjilulu_Shijianduan as 考试时间段 from chengjilulu_table where Chengjilulu_Shijianduan='"+this.comboBox2.Text+"'and Chengjilulu_Class='"+this.comboBox1.Text+"'", myConnection);
    myAdapter.Fill(mySet, "chengjilulu_table");
    }
    foreach (DataRow dataRow in mySet.Tables["chengjilulu_table"].Rows)
    {
    if((string)dataRow["班级"]==""+this.comboBox1.Text+"")
    {
    tableName=this.comboBox1.Text;//"班级" + (string)dataRow["班级"] + "表";
    }
    //tableName="班级"+this.comboBox1.Text+ "表";
    if (!mySet.Tables.Contains(tableName))
    {
    DataTable myTable = new DataTable(tableName);
    myTable.Columns.Add(new DataColumn("姓名", typeof(string)));
    myTable.Columns.Add(new DataColumn("学生编号",typeof(string)));
    foreach (DataRow innerRow in mySet.Tables["chengjilulu_table"].Select("班级 = '" + (string)dataRow["班级"] + "'"))
    {
    string columnName = (string)innerRow["科目"];
    if (!myTable.Columns.Contains(columnName))
    {
    DataColumn myColumn = new DataColumn(columnName, typeof(string));
    myTable.Columns.Add(myColumn);
    }
    }
    foreach (DataRow innerRow in mySet.Tables["chengjilulu_table"].Select("班级 = '" + (string)dataRow["班级"] + "'"))
    {
    if (myTable.Select("姓名 = '" + (string)innerRow["姓名"] + "'").Length == 0)
    {
    DataRow myRow = myTable.NewRow();
    foreach (DataColumn dataColumn in myTable.Columns)
    {
    if (dataColumn.ColumnName == "姓名")
    {
    myRow[dataColumn.ColumnName] = (string)innerRow[dataColumn.ColumnName];
    }
    else if(dataColumn.ColumnName == "学生编号")
    {
    myRow[dataColumn.ColumnName] = (string)innerRow[dataColumn.ColumnName];
    }
    else
    {
    myRow[dataColumn.ColumnName] = mySet.Tables["chengjilulu_table"].Select("姓名 = '" + (string)myRow["姓名"] + "' AND 科目 = '" + dataColumn.ColumnName + "'")[0]["成绩"];
    }
                                  
    }
    myTable.Rows.Add(myRow);
    }
    }
    mySet.Tables.Add(myTable);
    }
    }
                  this.dataGrid1.DataSource = mySet.Tables[tableName];//.Tables[tableName];  
      table=mySet.Tables[tableName];
    } private void printPreviewDialog1_Load(object sender, System.EventArgs e)
    {
    printPreviewDialog1.Bounds = ClientRectangle;
    }
    public void DrawTopLabel(Graphics g)
    {
    int TopMargin = printDocument1.DefaultPageSettings.Margins.Top;
    g.FillRectangle(new SolidBrush(label1.BackColor), label1.Location.X, label1.Location.Y + TopMargin, label1.Size.Width, label1.Size.Height);
    g.DrawString(label1.Text, label1.Font, new SolidBrush(label1.ForeColor), label1.Location.X + 50, label1.Location.Y + TopMargin, new StringFormat());
    }
    public void DrawTopLabel1(Graphics g)
    {
    int TopMargin = printDocument2.DefaultPageSettings.Margins.Top;
    g.FillRectangle(new SolidBrush(label1.BackColor), label1.Location.X, label1.Location.Y + TopMargin, label1.Size.Width, label1.Size.Height);
    g.DrawString(label1.Text, label1.Font, new SolidBrush(label1.ForeColor), label1.Location.X + 50, label1.Location.Y + TopMargin, new StringFormat());
    }

    public void SetupGridPrinter()
    {
    dataGridPrinter1 = new FengYeDataGridPrintClass.DataGridPrinter(dataGrid1, printDocument1,table);
    } private void button3_Click(object sender, System.EventArgs e)
    {
    SetupGridPrinter();
    dataGridPrinter1.PageNumber = 1;
    dataGridPrinter1.RowCount = 0;
    if (printDialog1.ShowDialog() == DialogResult.OK)
    {
    printDocument1.Print();
    }
    }
    private void button6_Click(object sender, System.EventArgs e)
    {
    dataGridPrinter2 = new FengYeDataGridPrintClass.DataGridPrinter(dataGrid1, printDocument2,table1);
    dataGridPrinter2.PageNumber = 1;
    dataGridPrinter2.RowCount = 0;
    if (this.printPreviewDialog2.ShowDialog() == DialogResult.OK)
    {
    }
    }
    private void printPreviewDialog2_Load(object sender, System.EventArgs e)
    {
    printPreviewDialog2.Bounds = ClientRectangle;
    }
    private void printDocument2_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    Graphics g = e.Graphics;
    DrawTopLabel1(g);
    bool more = dataGridPrinter2.DrawDataGrid(g);
    if (more == true)
    {
    e.HasMorePages = true;
    dataGridPrinter2.PageNumber++;
    }
    }
      

  4.   

    就是啊,谁知道GridView怎么打印啊,用Button按钮点击一下就可以打印GridView里面的内容了,知道的发给我吧,拜求!!!再次感谢!!!