Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时根据c中的用户输入动态追加字段_C#_Asp.net_Dynamic_Runtime - Fatal编程技术网

C# 在运行时根据c中的用户输入动态追加字段

C# 在运行时根据c中的用户输入动态追加字段,c#,asp.net,dynamic,runtime,C#,Asp.net,Dynamic,Runtime,在c语言中,如何最好地处理这种情况,表单包含大量的复选框100+,这些复选框映射到数据存储中的列/字段,用户可以选择其中任何一个。根据他们提交表单时选择的内容,我将生成数据的csv输出,但仅显示他们请求的字段列 list myData = getAllTheData var fieldstheychose = "name, mileage, address" foreach (var item in mydata) {

在c语言中,如何最好地处理这种情况,表单包含大量的复选框100+,这些复选框映射到数据存储中的列/字段,用户可以选择其中任何一个。根据他们提交表单时选择的内容,我将生成数据的csv输出,但仅显示他们请求的字段列

list myData = getAllTheData
var fieldstheychose = "name, mileage, address"

            foreach (var item in mydata)
                {
                var somedata = new StringBuilder();

                // make decision to include field or not
                somedata.Append(item.name.formatvalue() + ",");
                // make decision to include field or not
                somedata.Append(item.mileage.GetCSVEncodedValue() + ",");
                // make decision to include field or not
                somedata.Append(item.address.ToDisplayString() + ",");

                // make decision on 100+ fields that might be in the fieldstheychose list depending on their choices
        }
    return somedata;
我需要在运行时决定哪些字段将追加到上面,但我希望避免100多个if块来决定是否追加数据

我确实看过动态对象和expando对象,但我不确定它在这个场景中是否有用

欢迎提出任何意见

List<ListItem> selected = new List<ListItem>();
foreach (ListItem item in YourCheckBoxListID)
    if (item.Selected) 
        selected.Add(item);

这将存储已检查的ListItems(假设您使用的是CheckBoxList)。从那里,您可以遍历所选列表,并将条目转换为正确的csv格式。

将复选框的名称与列表mydata中的名称相同。循环浏览列表,并使用findControl函数查找复选框,以获得复选框选中的布尔值。将其添加到列表中

这些复选框是在winforms面板上吗?对不起,不,我应该说清楚,它们是asp.net表单。在用户选择要在运行时包含哪些字段之前,我不知道要包含哪些项,但在上面做了一些编辑以使其更清楚。值将需要包括在没有多个if条件的情况下,并列出所有100个条件,所以我认为您试图说的是,不同字段有不同的数据类型。您可以在DB或代码中创建字典,以确定要在不同字段上进行的转换类型,然后为每种类型创建if条件。是的,您的权利,每个字符串字段值的不同数据类型,我正在尽可能减少if条件的数量,由于页面中可能有大量字段,因此可以使用类型字典来实现这一点