C# Asp.net从控件检索内容
我将首先告诉你我不是ASC/C开发人员,这是一个家庭作业。我希望有人能理解我想要的:D,因为我不知道确切的术语 我有Friends.aspx和Friends.aspx.cs 在Friends.aspx中,我有 在Friends.aspx.cs中,我有以下内容来填充我的朋友:C# Asp.net从控件检索内容,c#,asp.net,C#,Asp.net,我将首先告诉你我不是ASC/C开发人员,这是一个家庭作业。我希望有人能理解我想要的:D,因为我不知道确切的术语 我有Friends.aspx和Friends.aspx.cs 在Friends.aspx中,我有 在Friends.aspx.cs中,我有以下内容来填充我的朋友: foreach (FBUser user in list){ Control control = LoadControl("FriendBox.ascx"); FriendBox myCon
foreach (FBUser user in list){
Control control = LoadControl("FriendBox.ascx");
FriendBox myControl = (FriendBox)control;
myControl.user = user;
divFriends.Controls.Add(myControl);
}
在我的页面a中有一个表单,divFriends在表单中。我有一个这种形式的按钮。如果我只是按下按钮,我的页面就会被提交,我可以从选中的复选框中检索值。每个控件都包含一个复选框
在我尝试通过Ajax JQuery提交页面之前,一切都很好。
我的问题是,即使复选框在页面上,我也可以使用它们,选择它们,当我进行ajax提交时,我无法访问复选框中的值。
这是我用来从复选框中检索值的代码:
});
javascript正在工作,因为我可以提交数据,也可以接收json返回的数据,当我查看提交的数据时,我没有divFriends的复选框。问题似乎是asp.net状态管理问题。我假设您只添加了一次FriendBox,可能带有if not page.ispostback之类的内容,而不是在每次点击的页面上。由于FriendBox是动态添加的,所以它在回发后无法存活,因此当您尝试阅读它时它不存在
您应该在每次加载页面时,在加载viewstate之前在Init上添加FriendBox。在初始化期间添加控件将允许Viewstate跟踪值,并可能会解决此问题。请显示提交表单的javascript,好吗?这是一个相当复杂的家庭作业:/添加控件的foreach循环在代码背后的什么地方?哪个事件,有什么逻辑吗?还有什么特别的原因让你像那样动态添加控件而不是去极化拼写?使用中继器/其他数据绑定控件? foreach(Control ctrl in divFriends.Controls) {
var friendBox = ctrl as FriendBox; //i can get here
if (friendBox != null) { //i never get here - because friendBox is allways null } }
$(document).ready(function () {
$('.big').click(function () {
//.big is my button
$('.big').attr('disabled', true);
var form_form = $(document).find('form');
$.ajax({
type: 'POST',
url: form_form.attr('action'),
data: form_form.serialize(),
dataType: 'json',
success: function (data) {
console.log('success');
},
complete: function (XMLHttpRequest, textStatus) {
$('.big').attr('disabled', false);
}
});
return false;
});