代码之家  ›  专栏  ›  技术社区  ›  naim5am

数据源到网格中的dsiplay;list<listofcargroups>其中listofcargroups is list<listofcars>

  •  0
  • naim5am  · 技术社区  · 15 年前

    我知道我不能做这样的事 List<List<string,string>> .所以我必须把每个对象放到一个类中,然后有一个类列表。 下面是我理解的问题。

    • 等级 故障字段 具有属性 字段名,错误
      • 示例数据:“年份”,“必须介于1900-2100之间”
    • 等级 失效字段 是一个列表 故障字段 ;表示 故障字段 每记录
      • 示例数据:(“年份”,“必须介于1900-2100之间” ),(“百分比”,“必须介于0-100之间”)…}
    • 等级 故障字段列表 是一个列表 失效字段 对于多个记录

    如果您想知道我为什么要尝试实现此数据结构,我将为在Linq to SQL中插入记录的每次失败尝试收集验证错误。

    迄今为止我的代码:

    在表示一个SQL表的分部类中:

    public partial class FailedFields 
    {
        public List<FailedField> ListOfFailedFieldsInOneRecord = new List<FailedField>();
        public void addFailedField(FailedField f) 
        {
            ListOfFailedFieldsInOneRecord.Add(f);
        }
        public int getFailedFieldsCount() 
        {
            return ListOfFailedFieldsInOneRecord.Count();
        }
    }
    public partial class FailedField
    {
        public string fieldName;
        public string message;
        public FailedField(string vField, string vMessage)
        {
            this.fieldName = vField;
            this.message = vMessage;
        }
        public override string ToString()
        {
            return fieldName + ", " + message;
        }
    }
    

    在MyDataContext中

    public partial class MyClassesDataContext
    {
      public partial class FailedFieldsList
      {
        private static List<Slab.FailedFields> ErrorList = new List<Slab.FailedFields>();
        public void AddErrorList(Slab.FailedFields errs)
        {
            ErrorList.Add(errs);
        }
        public List<Slab.FailedFields> GetErrorList()
        {
            return ErrorList;
        }
      }
    }
    

    在代码隐藏中

    MyClassesDataContext.FailedFieldsList FailedRecords = new  MyClassesDataContext.FailedFieldsList();
    ErrorBoxGridView.DataSource = FailedRecords.GetErrorList();
    ErrorBoxGridView.DataBind();
    

    样本输出

    |------------------------------------------------------------------------------|
    | Record # | Field_1 | Error_1 | Field_2 | Error_2 | ... | Field_10 | Error_10 |
    |------------------------------------------------------------------------------|
    |   Data   |   Data  |   Data  |   Data  |   Data  | ... |   Data   |   Data   | 
    |------------------------------------------------------------------------------|
    

    从Visual Studio调试器中,我知道我正在将对象填充到FailedFieldsList类。我不知道我哪里出错了。数据结构的逻辑错误,或者我没有正确地访问对象。或者在这种情况下,列表不是最好的工具?

    如果您认为有什么能帮助我理解我的错误所在,请建议您提供任何参考资料。

    我被困住了。感谢您的帮助。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Timothy Walters    15 年前

    听起来好像您正试图将失败字段记录列表绑定到网格中。

    问题是网格将显示(第一个)列表中的内容,在这种情况下,列表中的每个记录本身就是一个列表,那么您实际上希望网格显示什么?

    您要么需要将列表扁平化为一个列表(如果您喜欢,可以使用一些东西来标识组),要么可以使用主视图/详细视图类型(如果有关于每个字符串对列表的信息,您希望显示),或者可以使用树来允许向下钻取到您想要的级别。

    想想你到底想显示什么,然后从那里向后工作。