创建ToolBar方法:

    技术2025-11-18  12

    protected void Page_Load( object sender, EventArgs e)

    02 { 03      CreateToolBar(); 04   05      if (!IsPostBack) 06      { 07          string script = "_spOriginalFormAction = document.forms[0].action;/n_spSuppressFormOnSubmitWrapper = true;" ; 08          this .ClientScript.RegisterClientScriptBlock( this .GetType(), "script" , script, true ); 09      } 10 }

    创建ToolBar方法:

    view source print ? 01 private void CreateToolBar() 02 { 03      ToolBar tb = (ToolBar)Page.LoadControl( "~/_controltemplates/ToolBar.ascx" ); 04   05      ToolBarButton btnExportToExcel = (ToolBarButton)Page.LoadControl( "~/_controltemplates/ToolBarButton.ascx" ); 06      btnExportToExcel.ID = "btnExportToExcel" ; 07      btnExportToExcel.Text = "Export to Spreadsheet" ; 08      btnExportToExcel.ImageUrl = "/_layouts/images/icxls.gif" ; 09      btnExportToExcel.Click += new EventHandler(btnExportToExcel_Click); 10   11      tb.Buttons.Controls.Add(btnExportToExcel); 12      this .pnlToolbar.Controls.Clear(); 13      this .pnlToolbar.Controls.Add(tb); 14 }

    导出按钮事件:

    view source print ? 1 void btnExportToExcel_Click( object sender, EventArgs e) 2 { 3      ExportToExcel( "SearchResults" , gvSearchResults); 4 }

    下面是SharePoint中导出Excel的完整代码:

    view source print ? 01 protected void ExportToExcel( string fileName, GridView gv) 02 { 03      Response.Clear(); 04      Response.Charset = "GB2312" ; 05      Response.AddHeader( "content-disposition" , string .Format( "attachment; filename={0}" , fileName)); 06      Response.ContentType = "application/ms-excel" ; 07   08      using (TextWriter tw = new StringWriter()) 09      { 10          using (HtmlTextWriter htw = new HtmlTextWriter(tw)) 11          { 12              Table table = new Table(); 13              table.GridLines = gv.GridLines; 14   15              if (gv.HeaderRow != null ) 16              { 17                  PrepareControlForExport(gv.HeaderRow); 18                  table.Rows.Add(gv.HeaderRow); 19              } 20   21              foreach (GridViewRow row in gv.Rows) 22              { 23                  PrepareControlForExport(row); 24                  table.Rows.Add(row); 25              } 26   27              if (gv.FooterRow != null ) 28              { 29                  PrepareControlForExport(gv.FooterRow); 30                  table.Rows.Add(gv.FooterRow); 31              } 32   33              table.RenderControl(htw); 34   35              Response.Write(tw.ToString()); 36              Response.End(); 37          } 38      } 39 } 40   41 private void PrepareControlForExport(Control control) 42 { 43      for ( int i = 0; i < control.Controls.Count; i++) 44      { 45          Control current = control.Controls[i]; 46   47          if (current is LinkButton) 48          { 49              control.Controls.Remove(current); 50              control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text)); 51          } 52          else if (current is ImageButton) 53          { 54              control.Controls.Remove(current); 55              control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText)); 56          } 57          else if (current is HyperLink) 58          { 59              control.Controls.Remove(current); 60              control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text)); 61          } 62          else if (current is DropDownList) 63          { 64              control.Controls.Remove(current); 65              control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text)); 66          } 67          else if (current is CheckBox) 68          { 69              control.Controls.Remove(current); 70              control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False" )); 71          } 72   73          if (current.HasControls()) 74          { 75              PrepareControlForExport(current); 76          } 77      } 78 }
    最新回复(0)