在c#和ASP.NET中,向_click事件传递一个数组(类型:var)
本文关键字:一个 var 类型 数组 事件 NET ASP click | 更新日期: 2023-09-27 18:04:40
我真的很沮丧,因为我试图在我的asp.net应用程序中获得一个数组到我的_Click-Event。
事情是这样的:我有一个动态创建的"表单",这是一个工具列表。因此,对于每个待办事项,我都有一个描述(来自数据库),一个笔记字段和一个复选框。
因为它们可能是0-n个任务,所以我不能使用ascx-File中的asp:-标签。
这就是为什么我为每个todo创建了一个类,它看起来像这样:private class todoContainer
{
public int? id
{
get;
set;
}
public CheckBox activeted
{
get;
set;
}
[...]
列表通过foreach-loop创建,每个toDo都进入数组"todoArray"。以下是我如何使用循环中的控件:checkboxArea.Controls.Add (todoArray [todoArrayInt] .activeted);
因为我现在想发送列表到提交事件与我所做的所有更改(例如,如果我想添加一个笔记到toDo X,并想划掉toDo Y),我必须得到整个数组在我的_click -方法。不幸的是,我找不到一个方法来完成这个…
我试过了:
- 将整个数组放入asp: hiddenfield - control中,这根本不起作用
- 将数组放入会话中,但我找不到跟踪更改的方法…
如果有人能帮助我,我将非常感激。
致以最亲切的问候理查德。
如果您需要一个复选框集合,每个复选框与不同的TODO相关联,请尝试使用CheckBoxList控件。
CheckBoxList
使用此控件,您可以将数组中的每个TODO(不需要存储对复选框的引用)与使用每个项的Value属性存储id的复选框项关联起来。
在onclick事件中再次检索TODO就像迭代CheckBoxList Items集合(CheckBoxes)并检查Value属性以确定哪个CheckBox属于哪个TODO一样简单。
如何使用asp:repeater控件?
在你的提交按钮点击事件中,你应该能够循环遍历asp:repeater 中的每一项foreach(RepeaterItem item in repeater1.Items)
{TextBox box = (TextBox)item.FindControl("Value"); string b = box.Text; }
//在重复器循环后做一些事情