【问题标题】:Transfer the ImageButton clicked and display in a css popup传输单击的 ImageButton 并在 css 弹出窗口中显示
【发布时间】:2012-04-17 01:35:30
【问题描述】:

我正在尝试显示在 CSS 弹出窗口中单击的 ImageButton Image Url,但未调用该事件

我后面的代码如下:

  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];


}

【问题讨论】:

    标签: c# asp.net image dynamic


    【解决方案1】:

    对于动态属性,您必须在每次加载页面(包括回发)时运行创建代码。

    您无需在im_Click上创建新的ImageButton

    ImageButton im1 = (ImageButton)sender;
    

    【讨论】:

    • protected void im_Click(object sender, ImageClickEventArgs e) { } 我已经尝试过调试,但没有达到这一点
    【解决方案2】:

    您需要在 page_load 之前创建 imagebutton 并绑定它的处理程序。执行此操作的最佳位置是 page_init。这需要在每次加载时发生,无论是否回发。

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2018-07-14
      • 2023-04-09
      • 2020-02-16
      • 1970-01-01
      相关资源
      最近更新 更多