0

現在、3 つのリストをユニオンで結合しています。GridView に値を入力したいのですが、ここでの問題は、リスト内で値を分離したいということです。例えば:

  1. Listitem [0] "名 + " " + 姓"
  2. Listitem 1従業員ID
  3. Listitem [2] "2 番目の従業員名 + " " + 2 番目の従業員の姓"
  4. Listitem [3] 2 番目の従業員の従業員 ID

GridView に表示したい。これは現時点での私のコードです:

List<string> ulist = _searchEmpList.Union(_searchTechSkillList).Union(_searchAssignList).ToList();
string s = string.Empty;

for (int i = 0; i < ulist.Count; i++)
{
    s += ulist[i] + ",";
}

string[] split = s.Split(',');
DataRow dr = _dt.NewRow();
dr["Name"] = split[0]; //firstname + +lastname
dr["EmployeeId"] = split[1]; //employeeid

_dt.Rows.Add(dr);

Session["DataTableSearch"] = _dt;

GridViewSearchResults.DataSource = _dt;
GridViewSearchResults.DataBind();

ここに画像の説明を入力

4

2 に答える 2

0

これがあなたが求めている例です^^

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Windows.Forms;

namespace simpleOO
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            var myEmployee = new List<Employee>();

            var fistEmployee = new Employee();

            fistEmployee.FirstName = "Filip";
            fistEmployee.LastName = "Göndek";
            fistEmployee.TechSkills.Add(new TechSkills(){Skill="Engish"});
            fistEmployee.Id=1;
            myEmployee.Add(fistEmployee);
            myEmployee.Add(new Employee()
                                           {
                                               Id = 2,
                                               FirstName = "Helmut",
                                               LastName = "Müller",
                                               TechSkills = new List<TechSkills>()
                                                                                {
                                                                                    new TechSkills(){Skill="Engish"},
                                                                                    new TechSkills(){Skill="Spain"}
                                                                                }
                                           }
                                           );

            var filteredList = myEmployee.Where(employee => employee.TechSkills.Any(skill => skill.Skill == "Spain")).ToList();

            var bList = new BindingList<Employee>(filteredList);
            dataGridView1.DataSource = bList;
        }




    }

    public class Employee
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

        private List<TechSkills> techSkills = new List<TechSkills>();
        public List<TechSkills> TechSkills
        {
            get { return techSkills; }
            set { techSkills = value; }
        }

        // what ever more you need ...
    }

    public class TechSkills
    {
        public string Skill { get; set; }
    }
}

私はそれが非常に単純で汚いことを知っていますが、私があなたに伝えたいことを理解できると思います;)

于 2013-05-21T14:06:06.430 に答える