Ganesan Perumalsamy
Ganesan Perumalsamy

Reputation: 61

Ajax webmethod in asp.net problems

This is my jquery function. I have two functions. showgrid() function load data to html table. From that if i editrow() funcion. i'm getting error.

function showgrid() {
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "CourseSearch.aspx/DisplayCourses",
        data: "{'strSearchText':'" + $("#txtSearchText").val() + "'}",
        dataType: "json",
        success: function (data) {
            for (var i = 0; i < data.d.length; i++) {
            //$("#searchCoursesDiv").append("<tr><td style='color:#000888;'>" + data.d[i].CourseName + "</td><td>|</td><td style='color:#000888;'>" + data.d[i].CourseCode + "</td></tr><tr><td border='0px' colspan='3'><hr/></td></tr>");
                $("#searchCoursesDiv").append("<table><tr><td align='left' width='500px' style='color:#000888;' colspan='3'>" + data.d[i].CourseName + " | " + data.d[i].CourseCode + "</td></tr><tr><td colspan='3' valign='bottom'><hr /></td></tr><tr><td align='left'>Description:</td><td></td><td rowspan='2' align='right'><a href='#'>Course Details...</a><br/><a href=# onclick='EditRow( " + data.d[i].CourseCode + ")'>Nominate as Trainer...</a></td></tr><tr><td></td><td></td></tr><table>");
            }
        },
        error: function (result) {
                    alert("Error");
                }
    });
    // });
    return false;
}

//This function returns coursecode when user click html table row,.. this function get value from showgrid function and return value to page.but this funcion is not firing.i m getting error when click editrow() funciont in showgrid funcion.

function EditRow(CourseCode) {
    alert(CourseCode);
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "CourseSearch.aspx/StoreCourseCode",
        data: "{'CourseCode':'" + CourseCode + "'}",
        dataType: "json",
        success: function (data) {
            //                    $("#displayasstname").html(data.d);
            window.location = "nextpage.aspx";
        },
        error: function (result) {
            alert("Error");
        }
    });                     
}

This is my HTML design code:

<html>
    <body>
        <div id="searchCoursesDiv">
        </div>
    </body>
</html>

Issues: When i click editrow() function, I'm getting an error like this coursecode 'DOTNET3.0' undefined.

Upvotes: 1

Views: 582

Answers (2)

Sirwan Afifi
Sirwan Afifi

Reputation: 10824

you can use JSON.stringify to manage your parameters :

var data = JSON.stringify({ CourseCode: CourseCode, ... });

then :

function EditRow(CourseCode) {

        var data = JSON.stringify({ CourseCode: CourseCode, ... });
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "CourseSearch.aspx/StoreCourseCode",
                data: data,
                dataType: "json",
                success: function (data) {
                    //                    $("#displayasstname").html(data.d);
                    window.location = "nextpage.aspx";

                },
                error: function (result) {
                    alert("Error");
                }
                        });                     
        }

Upvotes: 0

silly
silly

Reputation: 7887

remove your json string in the post... like this

data: {"CourseCode": CourseCode },

instead

data: "{'CourseCode':'" + CourseCode + "'}",

Upvotes: 1

Related Questions