【发布时间】:2015-02-17 23:50:05
【问题描述】:
我不太确定我在这里做错了什么,我的 webforms 项目中有一个使用 jQuery 手风琴的页面。第一次加载页面时,服务器端代码会获取一些数据来填充用户控件,然后将其添加到我的页面中,如下所示。这很好用,我对此没有任何问题。
问题是,我试图在我的客户端上生成类似的东西,使用 jQuery 只需在 jQuery ajax 响应函数中创建控件,然后添加到dvProjects
ASPX 标记:
<asp:Content ID="Content2" ContentPlaceHolderID="Content" runat="server">
<div runat="server" id="dvProjects" class="dvAccordion">
</div>
</asp:Content>
jQuery AJAX 代码:
function AddUserProject() {
var projectDialog = $('.dvEditExhibition');
var projectName = projectDialog.find('.txtProjectName').val();
var projectDescription = projectDialog.find('.txtProjectDescription').val();
var project= JSON.stringify({
'projectId': "00000000-0000-0000-0000-000000000000",
'projectName': projectName,
'projectDescription': projectDescription
});
$.ajax({
type: "POST",
url: "PresentationService.asmx/AddUserProject",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: project,
success: function(response) {
var data = response.d;
console.log(data);
var h3Title = $('<h3/>', {
id: "h3ProjectTitle",
text:data.Name
});
var divWrapper = $('<div/>', {
});
var dvProjectImages = $('<div/>', {
class: "dvProjectImages"
});
var imgProjectImage = $('<img/>', {
id: "imgProjectImage",
class: "imgProjectImage"
});
var dvProjectDetails = $('<div/>', {
id: "dvProjectDetails",
});
var pProjectDescription = $('<p/>', {
id: "pProjectDescription",
class: "pProjectDescription",
text: data.Description
});
dvProjectImages.append(imgProjectImage);
dvProjectDetails.append(pProjectDescription);
divWrapper.append(dvProjectImages, dvProjectDetails);
var dvProjects = $('#dvProjects');
dvProjects.append(h3Title);
},
error: function(response) {
}
});
}
我的问题是这些控件没有添加到dvProjects。
【问题讨论】:
-
重要更新:除了我的回答之外,您还有一个错误, var dvProjects = $('#dvProjects');将不起作用,因为 asp.net 会为此生成一个客户端 ID 以确保唯一的 ID。而是使用 var dvProjects = $('#');
-
一旦你开始工作,你应该会遇到我在回答中概述的问题。
标签: c# jquery asp.net ajax web-services