我正在研究一個asp.net C#webforms項目。我必須在一段時間內調試一個問題,我得到「GDI +中發生的一般錯誤」錯誤。這可能是由於太多人同時訪問該網站。爲了模仿它,我想創建一個for循環來創建數以千計的圖像並通過佔位符顯示它。問題是,循環運行,只有最後一個圖像顯示出來。我希望看到循環中創建的每個圖像都顯示在頁面上。以下是代碼:如何通過佔位符在asp.net中使用for循環動態填充和顯示所有圖像?
protected void btnGenerateBarCode_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
var codabar = new ZXing.BarcodeWriter();
codabar.Options = options;
codabar.Format = ZXing.BarcodeFormat.CODE_128;
for (int i = 1000; i < 2000; i++)
{
using (Bitmap bitMap = new Bitmap(codabar.Write(i.ToString())))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
Convert.ToBase64String(byteImage);
imgBarCode.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(byteImage);
}
//the placeholder control on the page
plBarCode.Controls.Add(imgBarCode);
}
}
}
你重新加入了一個相同的控制 - 要麼得到plBarCode.Controls.Add()出你的/下一個循環的,或者把你的新的圖像( ) 在裏面。如果你想使用不同的控件,你需要使用遞增的X/Y點來定位它們。如果你想循環遍歷一個控件,你需要添加一個Load()和一個延遲,否則UI線程將沒有時間在圖像之間進行更新,你只會看到結束幀(就像動畫一樣) –