如何用c#保存面板的内容?

如何用c#保存面板的内容?,c#,asp.net,C#,Asp.net,我正在用c#做一个项目,我在保存面板时遇到了一个问题。 如果我选择了要加载到面板中的表单,我有一个列表框。 但是当我想保存我的面板时,不可能读取它的内容。 保存面板后,我想将其转换为pdf文档,但当我无法保存它时,就不可能这样做。谁能帮帮我吗 protected void btnPDF_Click(object sender, EventArgs e) { int teller = 0; foreach (Control Ctrl in pnlM

我正在用c#做一个项目,我在保存面板时遇到了一个问题。 如果我选择了要加载到面板中的表单,我有一个列表框。 但是当我想保存我的面板时,不可能读取它的内容。 保存面板后,我想将其转换为pdf文档,但当我无法保存它时,就不可能这样做。谁能帮帮我吗

    protected void btnPDF_Click(object sender, EventArgs e)
    {
        int teller = 0;

        foreach (Control Ctrl in pnlMain.Controls)
        {
            if (Ctrl is Label)
            {
                teller++;
            }

        }

        int teller2 = 0;
        Label[] arr_label = new Label[teller];

        foreach (Control Ctrl in pnlMain.Controls)
        {
            if (Ctrl is Label)
            {
                Label lbl_Ctrl = Ctrl as Label;
                arr_label[teller2] = lbl_Ctrl;
                teller2++;
            }
        }

        int teller3 = 0;
        int lengte = arr_label.Length;
        String hulp1;


        //aanmaken van uw document
        var doc1 = new Document(PageSize.A4, 50, 50, 25, 25);

        //aanmaken van  de outputstream
        var output = new MemoryStream(); //geen extra argumenten nodig

        //aanmaken van een "pdfwriter document"
        var writer = PdfWriter.GetInstance(doc1, output);

        //voor je in je document iets kan "schrijven" moet je het eerst openen:
        doc1.Open();

        while (teller3 < lengte)
        {
            Label hulp;

            hulp = arr_label[teller3];
            hulp1 = hulp.Text;
            teller3++;

            //bepaal de inhoud van je pdf document (locatie)
            string inhoud = File.ReadAllText(Server.MapPath("pdf.aspx"));
            var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(hulp1), null);

            //alle elementen van uw pagina in de pdf steken (foreach.... zeer handige functie)
            foreach (var htmlElement in parsedHtmlElements)
                doc1.Add(htmlElement as IElement);

        }
        //nu de pdf gemaakt is gaan we de boel afsluiten:
        doc1.Close();

        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", string.Format("attachment;filename= Evaluatierapport.pdf"));
        Response.BinaryWrite(output.ToArray());       
    }





      private void btnSave_Click(object sender, EventArgs e) 
      {
          SaveFileDialog saveFileDialog = new SaveFileDialog();

          saveFileDialog.DefaultExt = "bmp";
          saveFileDialog.Filter = "Bitmap files|*.bmp";
          if (saveFileDialog.ShowDialog() == DialogResult.OK)
          {
              int width = pnlMain.Width;
              int height = panel.Height;

              Bitmap bitMap = new Bitmap(width, height);
              System.Drawing.Rectangle rec = new Rectangle(0, 0, width, height);

              panel.DrawToBitmap(bitMap, rec);

              bitMap.Save(saveFileDialog.FileName);
          }
      }
}
protectedvoid btnPDF\u单击(对象发送方,事件参数e)
{
int-teller=0;
foreach(pnlMain.Controls中的控件Ctrl)
{
如果(Ctrl是标签)
{
teller++;
}
}
int=2=0;
Label[]arr_Label=新标签[teller];
foreach(pnlMain.Controls中的控件Ctrl)
{
如果(Ctrl是标签)
{
标签lbl\U Ctrl=Ctrl作为标签;
arr_label[tell2]=lbl_Ctrl;
teller2++;
}
}
int=3=0;
int lengte=arr_label.Length;
字符串hulp1;
//阿曼肯·范·乌瓦文件
var doc1=新文档(PageSize.A4、50、50、25、25);
//安马肯·范德奥普特斯特朗酒店
var output=new MemoryStream();//geen额外参数nodig
//安马肯·范恩“PDF编写者文件”
var writer=PdfWriter.GetInstance(doc1,输出);
//在je文件中,您可以看到“schrijven”的开头:
doc1.Open();
while(tell3
由此,我认为您正在动态加载控件:

如果我选择了表格,我有一个列表框 我想加载到我的面板中

动态添加的控件不会在回发过程中保持不变。您需要使用相同的ID再次添加它们。。。或者自己筛选viewstate

[编辑]

看看这些:


[/edit]

不可能做到这一点。为什么呢什么错误?异常?不要查看btnSaveClick下的代码,因为这完全是错误。它在出纳员(count)上给出了一个错误,他无法读取.cs文件的内容,但他可以读取.aspxyes中面板的内容,这就是问题所在。但“您需要使用相同的ID再次添加它们……或者自己筛选viewstate”是什么意思?已更新。看看我添加的两个链接。