Я получаю неопределенное событие EVENT в коде ASP.NET C # ниже. Я динамически создаю кнопки изображений и явно назначаю их для события CLICK. После того, как пользователь нажимает на миниатюру, пользователь перенаправляется на страницу с развернутым изображением этой миниатюры. Когда пользователь нажимает кнопку «Назад», чтобы перейти на исходную страницу, все становится интереснее. Если пользователь снова пытается щелкнуть по миниатюре, браузер не может повторно настроить событие нажатия кнопки изображения с ошибкой «СОБЫТИЕ не определено». Эта ошибка является случайной, она всегда возникает после минимум одного «обратного вызова», но последовательность когда это происходит, не согласовано. Интересно, что это только в IE. Google Chrome и Firefox работают нормально и распознают СОБЫТИЕ. Я обыграл свойство ViewState, но это не сработало. Любые идеи?
protected void ImageButton_Click(object sender, ImageClickEventArgs e)
{
ImageButton ib = (ImageButton)sender;
Server.Transfer(@"FullImage.aspx?file=" +
HttpUtility.UrlEncode("~/Gallery/Pictures/RegSize/pic" +
ib.CommandArgument + ".jpg"));
}
protected void Page_Load(object sender, EventArgs e)
{
//Array containing file locations of thumbnail pictures
string[] files = null;
files = Directory.GetFiles(Server.MapPath("~/Gallery/Pictures/RegSize"), "*.jpg");
for (int i = 0; i < files.Length; i++)
{
System.Web.UI.WebControls.Image imgWeb = new System.Web.UI.WebControls.Image();
//Create bitmap to retrieve Image's size information
Bitmap bmp = new Bitmap(Server.MapPath("~/Gallery/Pictures/RegSize/Pic"
+ i.ToString() + ".jpg"));
//Create dynamic ImageButton to hold the Image
System.Web.UI.WebControls.ImageButton imgBtn =
new System.Web.UI.WebControls.ImageButton();
imgBtn.Click += new ImageClickEventHandler(ImageButton_Click);
imgBtn.Attributes.Add("OnClick", "ImageButton_Click");
//imgBtn.EnableViewState = false;
imgBtn.ImageUrl = "~/Gallery/Pictures/RegSize/pic" + i.ToString() + ".jpg";
imgBtn.CommandArgument = i.ToString();
//Set Imagebutton Width/Height according to the Bitmaps Width/Height
imgBtn.Width = Resize(bmp.Size, 200, 200, "WIDTH");
imgBtn.Height = Resize(bmp.Size, 200, 200, "HEIGHT");
imgBtn.Style.Add(HtmlTextWriterStyle.BackgroundColor, "white");
imgBtn.Style.Add(HtmlTextWriterStyle.Margin, "5px");
//Dispose Bitmap, no need for it
bmp.Dispose();
//imgBtn.ImageUrl = @"thumbnail.aspx?file=\gallery\pictures\regsize\pic" + i.ToString() + ".jpg";
//imgBtn.PostBackUrl = @"FullImage.aspx?file=" + HttpUtility.UrlEncode("~/Gallery/Pictures/RegSize/pic" + i.ToString() + ".jpg");
divDisplay.Controls.Add(imgBtn);
}