Передача ImageButton нажал и отображается во всплывающем окне CSS - PullRequest
0 голосов
/ 03 апреля 2012

Я пытаюсь отобразить URL-адрес ImageButton, щелкнувший во всплывающем окне CSS, однако событие не вызывается

Мой код выглядит следующим образом:

  protected void Page_Load(object sender, EventArgs e)
{
    uid = (string)Session["uid"];
    api = (FacebookAPI)Session["Api"];
    con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\FB\\App_Data\\Database.mdf;Integrated Security=True;User Instance=True");
    con.Open();
    string query = "SELECT [FB_Id],[Pic_square],[Name],[Profile_url],[Loc_city],[contact_email],[Affiliations],[Edu_Hist],[Work_Hist] FROM [User1] WHERE([FB_Id] IN (SELECT [FB_Id2] FROM [Connections] WHERE([FB_Id1] ='812534558') AND ([Connected] = 'True')))";
     adapter = new SqlDataAdapter(query, con);
    ds = new DataSet();
    adapter.Fill(ds);
    int count = ds.Tables[0].Rows.Count;

    for (int i = 0; i < count; i++)
    {
        HtmlGenericControl listitem = new HtmlGenericControl("li");
        HtmlGenericControl anchor = new HtmlGenericControl("a");
        ImageButton im = new ImageButton();
        im.ImageUrl = (string)ds.Tables[0].Rows[i].ItemArray[1];
        im.ID = "image" + i;

        im.Height = 80;
        im.Width = 80;
        //anchor.InnerHtml = fr.data[i].name;
        anchor.Controls.Add(im);
        anchor.Attributes.Add("href", "#lightbox-unlocked");

        anchor.Attributes.Add("class", "open-popup");
        anchor.Attributes.CssStyle.Add("div", "holder");
        listitem.Controls.Add(anchor);
        im.Click += new ImageClickEventHandler(im_Click); // not working
        if (i <= 5)
        {
            list.Controls.Add(listitem);
            Panel1.Controls.Add(list);
        }
        else if (5 < i && i <= 11 )
        {
            list1.Controls.Add(listitem);
            Panel2.Controls.Add(list1);
        }
        else if (11 < i && i<= 17)
        {

            list2.Controls.Add(listitem);
            Panel3.Controls.Add(list2);
        }
        else if (17 < i  && i <= 23)
        {

            list3.Controls.Add(listitem);
            Panel4.Controls.Add(list3);

        }
        else
        {

            list4.Controls.Add(listitem);
            Panel5.Controls.Add(list4);
        }





    }



protected void im_Click(object sender, ImageClickEventArgs e)
{

    ImageButton im1 = (ImageButton)sender;
    string i1 = im1.ID.Substring(im1.ID.Length - 1, 1);
    Regex re = new Regex(@"\d+");
    Match m = re.Match(im1.ID);
    int j2 = Convert.ToInt16(m.Value);
    int j1 = Convert.ToInt32(i1);
    Image2.ImageUrl = (string)ds.Tables[0].Rows[j1].ItemArray[1];


}

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Вам нужно создать кнопку изображения и связать ее обработчик перед загрузкой страницы. Лучшее место для этого - page_init. Это должно происходить при каждой загрузке, независимо от обратной передачи.

0 голосов
/ 03 апреля 2012

для динамических свойств вы должны запускать код создания каждый раз, когда загружается ваша страница, включая обратную передачу.

и вам не нужно создавать новый ImageButton на im_Click

ImageButton im1 = (ImageButton)sender;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...