在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中,这根本不起作用
  • 将数组放入会话中,但我找不到跟踪更改的方法…

如果有人能帮助我,我将非常感激。

致以最亲切的问候理查德。

在c#和ASP.NET中,向_click事件传递一个数组(类型:var)

如果您需要一个复选框集合,每个复选框与不同的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;               
           }

//在重复器循环后做一些事情