Question

i am working on a website in aspx in which i need a pop up. i have a pop up which i want to use it in site. my proble is when i use pop up in my imagebutton, than pop up opens but button_click event doesn't fire. i just want that my pop up will open and button click event also fire correctly. Please help me in this. i am very weak in javascript. My code is here:-

Asp.Net Code:-

         <script type="text/javascript">
               $("[id*=ImageButton1]").live("click", function () {
                   $("#modal_dialog").dialog({
                       buttons: {
                           Close: function () {
                               $(this).dialog('close');
                           }
                       },
                       modal: true
                   });
                   return false;
               });
</script>

                <asp:ImageButton ID="ImageButton1" style="margin-left:7px;" ImageUrl="~/button.png"  runat="server" 
                    onclick="ImageButton1_Click"></asp:ImageButton>

and My c# code is here:-

            protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["LPSConnection"].ConnectionString.ToString());
    con.Open();
    int id = Int32.Parse(Request.QueryString["id"].ToString());
    SqlDataReader rd = new SqlCommand("Select Booked from ExpertChat where id=" + id, con).ExecuteReader();
    rd.Read();

    int x = Int32.Parse(rd["Booked"].ToString());
    rd.Close();
    if (x == 0)
    {
        SqlCommand cmd = new SqlCommand("Update ExpertChat set Booked=1 where id=" + id, con);
        cmd.ExecuteNonQuery();
        SqlCommand mRead1 = new SqlCommand("insert into chat (ExpertName,UserName,rate) Values ('" + Label1.Text + "','" + Session["SName"] + "','" + Label5.Text + "')", con);
        mRead1.ExecuteNonQuery();
        SqlDataReader mRead4;
        mRead4 = new SqlCommand("Select top 1 id from Chat where ExpertName='" + Label1.Text + "' order by id Desc", con).ExecuteReader();
        mRead4.Read();
        int x1;
        x1 = Int32.Parse(mRead4["id"].ToString());
        mRead4.Close();

        wait(x1);
    }
    else
    {
        Response.Redirect("ExpertMail.aspx?id=" + id);

    }

}
Was it helpful?

Solution

I provided a full working example. First you need at least one server (postback) control so that the method __doPostBack ist included by the render engine. On closing the dialog you call the postback in order to call the server method.

ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SimplePage.aspx.cs" Inherits="DeleteMeEgal.SimplePage"%>

<html>
<head runat="server">
    <title></title>
</head>
<body>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.js"></script>

    <form id="form1" runat="server">
    <div>

    Button: 
    <asp:ImageButton ClientIDMode="Static" ID="ImageButton1" 
            ImageUrl="http://www.heise.de/icons/ho/heise_online_lupe.gif"  runat="server" 
            onclick="ImageButton1_Click1"></asp:ImageButton>


 <script type="text/javascript">
     $(document).ready(function () {
         $('#ImageButton1').click(function () {
             $("#dialog").dialog(
                    {
                        buttons: {
                            Close: function () {
                                $(this).dialog('close');
                                __doPostBack('ImageButton1', '');
                            }
                        },
                        modal: true
                    });
             return false;
         });
     });
</script>
    </div>

    <div style="visibility: hidden">
        <div id="dialog" title="Basic dialog" >
          <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
        </div>
    </div>

    <%-- included to force __doPostBack javascript function to be rendered --%>
    <asp:LinkButton ID="LinkButton1" runat="server" /> 

    </form>
</body>
</html>

Code Behind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DeleteMeEgal
{
    public partial class SimplePage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void ImageButton1_Click1(object sender, ImageClickEventArgs e)
        {
            Response.Write("You ran the ImageButton1_Click click event");
        }

    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top