我需要根据复选框列表选择特定列 [英] I need to select particular column based on check box list
问题描述
我有一个复选框列表,该用户可以选中或取消选中复选框。
I have a check box list in that user can check or uncheck the check box.
根据所选复选框,我用于以逗号分隔来存储该值。现在问题是基于选定的复选框,我需要单独获得特定的列。在select**
Based on the selected check box I used to store that value by comma separated. Now the problem is based on selected check box I need to get that particular column alone. in "select"**
db.Tasks.OrderBy(t => t.CreatedDate).ToList()
.Select(t => new {
Id = t.Id,
PriorityId = t.ProjectId,
Priority = t.Priority,
StatusId = t.StatusId,
Status = t.Status,
EstimatedTime = t.EstimatedTime,
ActualTime = t.ActualTime,
Subject = t.Subject,
FileName = t.FileName,
AssignedTo = t.AssignedTo,
Project = t.Project
}).ToList();
如果我在复选框列表中选择ActualTime,Subject,它应该像
if i select in check box list ActualTime, Subject, it should be like
db.Tasks.OrderBy(t => t.CreatedDate).ToList()
.Select(t => new {
Id = t.Id,
ActualTime = t.ActualTime,
Subject = t.Subject
}).ToList();
如果我在复选框列表中选择主题,FileName,AssignedTo,它应该像
if i select in check box list Subject, FileName, AssignedTo, it should be like
db.Tasks.OrderBy(t => t.CreatedDate).ToList()
.Select(t => new {
Id = t.Id,
Subject = t.Subject,
FileName = t.FileName,
AssignedTo = t.AssignedTo
}).ToList();
选择将根据所选复选框列表动态。
the select will be dynamic based on selected check box list.
推荐答案
将DynamicLibrary.cs添加到您的项目中。
您可以从此链接获取。它是一个包含动态链接源的zip文件。这不是一个dll。
最初发布在ScottGu的博客这里。
作为参考查看此堆栈溢出链接。
add DynamicLibrary.cs to your project. You can get it from this link . It's a zip file that contains the dynamic link source. It's not a dll. Originally posted on ScottGu's blog here. for reference see this stack overflow link .
using System.Linq.Dynamic;
public class DynamicColumns : BaseEntity
{
public string User { get; set; }
public string TaskId { get; set; }
public string Project { get; set; }
public string Priority { get; set; }
public string TaskType { get; set; }
public string Version { get; set; }
public string Module { get; set; }
public string Subject { get; set; }
public string Details { get; set; }
public string FileName { get; set; }
public string Status { get; set; }
public string AssignedBy { get; set; }
public string AssignedTo { get; set; }
public int ActualTime { get; set; }
public int LogWork { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime AssignedDate { get; set; }
public DateTime ResolveDate { get; set; }
public int EstimatedTime { get; set; }
}
public enum EnumTasks
{
User = 1,
Project = 2,
Priority = 3,
TaskType = 4,
Version = 5,
Module = 6,
Subject = 7,
Details = 8,
Status = 9,
Assigned_By = 10,
Assigned_To = 11,
Created_Date = 12,
Assigned_Date = 13,
Resolve_Date = 14,
Estimated_Time = 15,
Actual_Time = 16,
LogWork = 17
}
public IQueryable DynamicSelectionColumns()
{
using (var db = new TrackerDataContext())
{
string fieldIds = "," + "4,5,3,2,6,17,11,12" + ",";
var taskColum = Enum.GetValues(typeof(EnumTasks)).Cast<EnumTasks>().Where(e => fieldIds.Contains("," + ((int)e).ToString() + ",")).Select(e => e.ToString().Replace("_", ""));
string select = "new ( TaskId, " + (taskColum.Count() > 0 ? string.Join(", ", taskColum) + ", " : "") + "Id )";
return db.Task.ToList().Select(t => new DynamicColumns() { Id = t.Id, TaskId = Project != null ? Project.Alias + "-" + t.Id : t.Id.ToString(), ActualTime = t.ActualTime, AssignedBy = t.AssignedBy.ToString(), AssignedDate = t.AssignedDate, AssignedTo = t.AssignedTo.ToString(), CreatedDate = t.CreatedDate, Details = t.Details, EstimatedTime = t.EstimatedTime, FileName = t.FileName, LogWork = t.LogWork, Module = t.Module != null ? t.Module.Name : "", Priority = t.Priority != null ? t.Priority.Name : "", Project = t.Project != null ? t.Project.Name : "", ResolveDate = t.ResolveDate, Status = t.Status != null ? t.Status.Name : "", Subject = t.Subject, TaskType = t.TaskType != null ? t.TaskType.Type : "", Version = t.Version != null ? t.Version.Name : "" }).ToList().AsQueryable().Select(select);
}
}
这篇关于我需要根据复选框列表选择特定列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!