0

please some one help to clear this error

I want to show a modal pop(with inside details from database) upon each click of the dynamic boxes without page refresh.I used jquery ajax,but i cant get the values from database.it shows undefined error on the field inside pop up.please see the code.

<script type="text/javascript">
      $.fx.speeds._default = 1000;
      $(document).ready(function () {
          $("div[id*='window']").live('click', function (e) {
              $.ajax({
                  url: 'Default2.aspx/get_details',
                  type: 'Get',
                  // dataType: 'json',
                  data: { id: $(this).attr('id').replace(/window/g, '') },
                  success: function (data) {
                    alert(data);
                      $('<div></div>').appendTo('body').html('<div>' + data.comp_name + '</div><div>' + data.comp_status + '</div>').dialog({
                          modal: true, title: 'owner details', zIndex: 10000, autoOpen: true,
                          width: 400, height: 200, modal: false, resizable: false, closeOnEscape: false,
                          show: "slide", hide: "explode",

                          close: function (event, ui) {
                              $(this).remove();
                          }
                      });
                  }
              });
          });
      });


  </script>

c# code:

public class Company
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Status { get; set; }
    }


  public Company get_details(int id)
  {

      DataSet dset = new DataSet();
      SqlConnection cn = new SqlConnection(@"Data Source=KUR;Initial Catalog=Drea;User ID=sa;Password=Sage");
      string qry = "Select comp_companyId,comp_name,comp_status from Company where comp_companyId=" +id+" ";
      SqlDataAdapter sda = new SqlDataAdapter(qry, cn);
      sda.Fill(dset);

      Company entity = new Company();

      SqlCommand cmd = new SqlCommand(qry, cn);

      SqlDataReader reader = cmd.ExecuteReader();

      if (reader.Read())
      {
          entity.Id = int.Parse(reader["comp_companyId"].ToString());
          entity.Name = reader["comp_name"].ToString();
          entity.Status = reader["comp_status"].ToString();
      }

      return entity;
  }
3
  • 1
    Can you provide more information on the error? Where does it occur, on what line? Also, can you post the response from the server? Commented May 25, 2012 at 10:47
  • 2
    does the alert(data) say undefined? You should be using a datatype in your ajax request if you are expecting a response from the server. Commented May 25, 2012 at 10:48
  • no inside the pop up instead of field values i got undefined Commented May 25, 2012 at 11:18

2 Answers 2

1

Two things that I see to check out:

  1. Mark your server-side method with the [WebMethod] attribute.
  2. The actual data is returned in data.d, not data.
Sign up to request clarification or add additional context in comments.

Comments

0
public string Name { get; set; } -> data.Name ...
if u use data.name it will show as undefined. because it is case sensitive   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="Scripts/css/ui-lightness/jquery-ui-1.8.20.custom.css" rel="stylesheet"
        type="text/css" />
    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery-ui-1.8.20.custom.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $.fx.speeds._default = 1000;
        $(document).ready(function () {
            $("div[id*='window']").live('click', function (e) {
                $.ajax({
                    url: "WebService.asmx/GetCompanyDetails", type: "Post", dataType: "json",
                    data: JSON.stringify({ id: $(this).attr('id').replace(/window/g, '') }),
                    contentType: "application/json; charset=utf-8",
                    success: function (msg) {
                        var data = $.parseJSON(JSON.stringify(eval("(" + msg.d + ")")));

                        $('<div></div>').appendTo('body').html('<div>' + data.Name + '</div><div>' + data.City + '</div>').dialog({
                            modal: true, title: 'Test message', zIndex: 10000, autoOpen: true,
                            width: 460, height: 300, modal: true, resizable: false, closeOnEscape: false,
                            show: "slide", hide: "explode",
                            buttons: {
                                Ok: function () {
                                    $(this).dialog("close");
                                }
                            },
                            close: function (event, ui) {
                                $(this).remove();
                            }
                        });
                    },
                    error: function (msg) {

                    }
                });
            });
        });
    </script>
</head>
<body>
    <div id="window1">
        Test1
    </div>
    <br />
    <br />
    <br />
    <br />
    <div id="window2">
        Test2
    </div>
</body>
</html>



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

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

        }

        public Company GetCompanyDetails(int id)
        {
            if (true)   //authorize 
            {
                //SqlConnection cn = new SqlConnection(@"Data Source=KURIOS_WS4;Initial Catalog=Dreams;User ID=sa;Password=SageCRMv71");
                //string qry = "Select comp_companyId,comp_name,comp_status from Company where comp_companyId=@comp_companyId ";
                //SqlCommand cmd = new SqlCommand(qry, cn);
                //SqlDataReader reader = cmd.ExecuteReader();

                Company entity = new Company();
                entity.Id = 2;
                entity.Name = "Test";
                entity.City = "Bangalore";

                //Or

                //if (reader.Read())
                //{
                //    entity.Id = int.Parse(reader["comp_companyId"].ToString());
                //    entity.Name = reader["comp_name"].ToString();
                //    entity.City = reader["comp_status"].ToString();
                //}

                return entity;
            }
            else
            {
                return new Company();
            }
        }
    }
}



using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
using CompanyDisplay;

namespace CompanyDisplay
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [ScriptService]
    public class WebService : System.Web.Services.WebService
    {
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetCompanyDetails(int id)
        {
            return new JavaScriptSerializer().Serialize(new CompayJqueryUI().GetCompanyDetails(id));
        }
    }
}

5 Comments

hi in the above code if i keep breakpoint it is not firing to the get details method,so i cant get the database values.I will try this code
send u r or friend email id . i will send u the zip file.
namespace shoulde be same for .aspx and .asmx file name and method name should match as WebService.asmx/GetCompanyDetails in jquery
k.. i sended u the attachment u can delete the email id.
public string Name { get; set; } -> data.Name . if u use data.name it will show as undefined. because it is case sensitive.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.