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标签。
答案 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);
}
}