当前位置: 代码迷 >> ASP.NET >> gridview如何根据checkbox选择来导出excel
  详细解决方案

gridview如何根据checkbox选择来导出excel

热度:5057   发布时间:2013-02-25 00:00:00.0
gridview怎么根据checkbox选择来导出excel
C# code
  protected void Button1_Click(object sender, EventArgs e)    {s.AppendLine("<table style='width:800px' border=1>");            for (int i = 0; i < GridView1.Rows.Count; i++)        {             CheckBox ck = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBox1");            if (ck.Checked)            {                //GridView1.Columns                 s.AppendLine(" <tr>");                for (int j = 0; j < GridView1.Columns.Count; j++)                {                                   s.AppendFormat("<td>{0} </td>", ((Label)GridView1.Rows[i].Cells[j].FindControl("Label")).Text);// 提示出错:System.NullReferenceException: 未将对象引用设置到对象的实例。                }                s.AppendLine(" </tr>");            }        }         s.Append("</table>");        Export("application/ms-excel", "excel.xls", s.ToString());}private void Export(string FileType, string FileName, string s)    {        Response.Charset = "UTF-8";        Response.ContentEncoding = System.Text.Encoding.UTF8;        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());        Response.ContentType = FileType;        Response.Write(s);        Response.End();    }


------解决方案--------------------------------------------------------
C# code
for (int i = 0; i < GridView1.Rows.Count; i++)        {             CheckBox ck = GridView1.Rows[i].FindControl("CheckBox1") as CheckBox;            if (ck!=null&&ck.Checked)            {                        s.AppendLine(" <tr>");                        Label lbl=GridView1.Rows[i].FindControl("Label1") as Label;                if(lbl!=null)                {                   s.AppendFormat(" <td>{0} </td>", lbl.Text);                }                 lbl=GridView1.Rows[i].FindControl("Label2") as Label;                if(lbl!=null)                {                   s.AppendFormat(" <td>{0} </td>", lbl.Text);                }                 ...                s.AppendLine(" </tr>");            }        }
  相关解决方案