按钮onClick事件仅在第一次单击时触发

时间:2014-07-22 13:54:36

标签: c# asp.net sharepoint-2013 web-parts

我正在尝试在SharePoint 2013中开发可视webpart,我只是在Web部件上有一个asp按钮,它在第一次单击时工作正常但在第二次单击时没有做任何事情。

下面是我的标记

<asp:Button ID="exporttopdf" runat="server" Text="Export To PDF" OnClick="exporttopdf_Click" />

下面是我的OnClick事件代码

 protected void exporttopdf_Click(object sender, EventArgs e)
    {

        try
        {
            using (MemoryStream stream = new MemoryStream())
            {
                PdfPCell cell;
                SPList list = SPContext.Current.Site.OpenWeb().Lists[this.ListName];
                BaseColor rGBColor = WebColors.GetRGBColor("#AFAECE");
                PdfPTable element = new PdfPTable(2)
                {
                    TotalWidth = 144f,
                    LockedWidth = true
                };
                float[] relativeWidths = new float[] { 1f, 2f };
                element.SetWidths(relativeWidths);
                element.HorizontalAlignment = Element.ALIGN_MIDDLE;
                element.SpacingBefore = 20f;
                element.SpacingAfter = 30f;
                if (this.PdfHeading != null)
                {
                    cell = new PdfPCell(new Phrase(this.PdfHeading));
                }
                else
                {
                    cell = new PdfPCell(new Phrase(this.ListName));
                }
                cell.Colspan = 2;
                cell.Border = 0;
                cell.Padding = 4;
                cell.BackgroundColor = rGBColor;
                cell.HorizontalAlignment = 1;
                element.AddCell(cell);
                Document document = new Document(PageSize.A4, 25f, 25f, 30f, 30f);
                PdfWriter instance = PdfWriter.GetInstance(document, stream);
                document.Open();
                document.AddAuthor("Place Holder");
                document.AddCreator("Place Holder");
                document.AddKeywords("Place Holder");
                document.AddSubject(this.ListName);
                document.AddTitle(this.ListName);
                instance.Info.Put(new PdfName("Producer"), new PdfString("Place Holder"));
                PdfContentByte directContent = instance.DirectContent;
                string[] separator = new string[] { ";", "," };
                string[] strArray2 = this.ViewFields.Split(separator, StringSplitOptions.None);
                new StringBuilder().Append(this.ListName + "\n");
                foreach (string str in strArray2)
                {

                    PdfPCell cell2 = new PdfPCell(new Phrase(str))
                    {
                        Border = 0,
                        Padding = 4,
                        HorizontalAlignment = 0
                    };
                    element.AddCell(cell2);
                    if (str != "Modified By" && str != "Created By")
                    {
                        PdfPCell cell3 = new PdfPCell(new Phrase(SPContext.Current.Item[str].ToString()))
                        {
                            Border = 0,
                            Padding = 4,
                            HorizontalAlignment = 0
                        };
                        element.AddCell(cell3);
                    }
                    else
                    {
                        string strc = SPContext.Current.Item[str].ToString();
                        string[] separatorc = new string[] { "," };
                        string[] strArray3 = SPContext.Current.Item[str].ToString().Split(separatorc, StringSplitOptions.None);
                        PdfPCell cell3 = new PdfPCell(new Phrase(strArray3[3].ToString().Substring(8).Replace(@"\\", @"\")))
                        {
                            Border = 0,
                            Padding = 4,
                            HorizontalAlignment = 0
                        };
                        element.AddCell(cell3);

                    }

                }
                PdfPCell cell4 = new PdfPCell(new Phrase("Footer"))
                {
                    Colspan = 2,
                    Border = 0,
                    Padding = 4,
                    BackgroundColor = rGBColor,
                    HorizontalAlignment = 1
                };
                element.AddCell(cell4);
                document.Add(element);
                document.Close();
                instance.Close();
                stream.Close();
                HttpContext.Current.Response.ContentType = "pdf/application";
                string str2 = SPContext.Current.Item["Title"].ToString() + ".pdf";
                HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + str2);
                HttpContext.Current.Response.OutputStream.Write(stream.GetBuffer(), 0, stream.GetBuffer().Length);
            }
        }
        catch (Exception exception)
        {
            SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Export To PDF", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, exception.Message, new object[] { exception.StackTrace });
        }
    }

有什么想法吗?

0 个答案:

没有答案