【问题标题】:Bind Dataset to ASP.Net Div tag using jQuery AJAX使用 jQuery AJAX 将数据集绑定到 ASP.Net Div 标签
【发布时间】:2016-08-09 08:02:22
【问题描述】:

Iam Binding 在 Div 标记内。现在 iam 使用中继器内的数据集从 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 标签。

【问题讨论】:

  • 为什么不移除中继器?
  • 您好,该应用程序就像发布消息。因此,如果我发布消息,它会存储在数据库中,并由转发器按发布日期排序的绑定消息取回。早些时候,我曾经在 rep.DataSource = this.GetMessages(); 之类的代码中使用数据集在转发器中绑定。 rep.DataBind()。但每次发布消息时,它都在使用页面加载和获取数据并将其与我不需要的转发器绑定。因此我决定使用 jquery ajax 方法在转发器内绑定数据,但我坚持代码中的一行..

标签: jquery asp.net ajax


【解决方案1】:

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

1.在页面的任意位置添加&lt;div id="result"&gt;&lt;/div&gt;。我们会将$.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);
    }
}

【讨论】:

  • 嘿谢谢..我已经用我的详细代码编辑了我的问题。你能看看它..
  • 我不明白你想让我调查什么?我已经给你答案了,你所要做的就是将它复制并粘贴到你的解决方案中并调试它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 2013-05-18
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多