private void RenderExcel(System.Web.UI.Control c) { // 确保有一个合法的输出文件名 if (_fileName == null || _fileName == string.Empty || !(_fileName.ToLower().EndsWith(".xls"))) { _fileName = GetRandomFileName(); } HttpResponse response = HttpContext.Current.Response; response.Charset = "GB2312"; response.ContentEncoding = Encoding.GetEncoding("GB2312"); response.ContentType = "application/ms-excel/msword"; response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName)); CultureInfo cult = new CultureInfo("zh-CN", true); StringWriter sw = new StringWriter(cult); HtmlTextWriter writer = new HtmlTextWriter(sw); writer.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=GB2312\">"); DataGrid dg = c as DataGrid; if (dg != null) { dg.RenderControl(writer); } else { throw new ArgumentException("only supports DataGrid or ASPxGrid.", "c"); } c.Dispose(); response.Write(sw.ToString()); response.End(); }
public void Methods_Deny_Unrestricted () { Control c = new Control (); c.DataBind (); Assert.IsNull (c.FindControl ("mono"), "FindControl"); Assert.IsFalse (c.HasControls (), "HasControls"); c.RenderControl (writer); Assert.IsNotNull (c.ResolveUrl (String.Empty), "ResolveUrl"); c.SetRenderMethodDelegate (new RenderMethod (SetRenderMethodDelegate)); #if NET_2_0 c.ApplyStyleSheetSkin (page); Assert.IsNotNull (c.ResolveClientUrl (String.Empty), "ResolveClientUrl"); #endif c.Dispose (); }