使用jQuery AJAX将数据集绑定到ASP.Net Div标记

时间:2016-08-09 08:02:23

标签: jquery asp.net ajax

Iam Binding<%#Eval(“message”)%>在div标签内部。现在我正在使用转发器内的数据集从db中获取数据。每个时间页面都在加载从db中获取数据我想避免。所以我决定使用Jquery ajax来绑定数据集。我的问题是如何将数据集绑定到里面div标签。

我的代码是:

   <asp:Repeater ID="rep" runat="server" 
    OnItemDataBound="rep_ItemDataBound">   <ItemTemplate>
        <div>
            <p><%#Eval("message") %></p>
        </div>
         </ItemTemplate>
        </asp:Repeater>

代码背后:

[WebMethod]
    public static string GetMessages()
    {
        string query = "GetMessageData";
        SqlCommand cmd = new SqlCommand(query);
        cmd.CommandType = CommandType.StoredProcedure;
        return GetData(cmd).GetXml();
    }
    private static DataSet GetData(SqlCommand cmd)
    {
        string strConnString = ConfigurationManager.ConnectionStrings["connectionng"].ConnectionString;
        using (SqlConnection con = new SqlConnection(strConnString))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataSet ds = new DataSet())
                {
                    sda.Fill(ds);
                    return ds;

                }
            }
        }
    }

使用Javascript:

$(function () {
    $.ajax
    ({
        type: "POST",
        url: "welcome.aspx/GetMessages",
        data: '{}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function (response) {
            alert(response.d);
        },
        error: function (response) {
            alert(response.d);
        }
    });
});

function OnSuccess(response) {
    var xmlDoc = $.parseXML(response.d);
   --Iam stuck Here--

}

因此,如果成功,我如何将我的数据集绑定到转发器内的div标签。

1 个答案:

答案 0 :(得分:1)

您真正需要做的就是遍历$.ajax调用返回的XML,并将结果追加到页面上的元素。

1.在页面的任意位置添加<div id="result"></div>。我们会将$.ajax调用的输出写入此元素。

2.更改OnSuccess()这样的功能:

function OnSuccess(response) {
    var xmlDoc = $.parseXML(response.d);
    var length = xmlDoc.children[0].children.length;
    $("#result").empty();

    for(var i = 0; i < length; i++)
    {
        var item = xmlDoc.children[0].children[i];
        var message = item.getElementsByTagName("message")[0].innerHTML;
        var div = "<div><p>" + message + "</p></div>";
        $("#result").append(div);
    }
}