Я пытался прочитать все статьи и пробовал решения, но у меня не получилось.
Одно из решений, которое я попробовал
Привязка универсального массива списка к GridView .
Новый файл проекта, который я создал с помощью вашего примера кода для настройки, -ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SharePointProject2
{
public class abc
{
public string customername { get; set; }
public List<def> DEF { get; set; }
}
public class def
{
public string materialcode { get; set; }
}
}
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;
namespace SharePointProject2.testing
{
public partial class testingUserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
List<abc> test1 = new List<abc>();
List<def> test2 = new List<def>();
test2.Add(new def() { materialcode = "something" });
test1.Add(new abc() { customername = "anything", DEF = test2 });
GridView1.DataSource = test1;
GridView1.DataBind();
}
}
}
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="testingUserControl.ascx.cs" Inherits="SharePointProject2.testing.testingUserControl" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Charge Code">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# ((List<def>)(Eval("DEF")))[0].materialcode %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
Когда я компилирую код выше, это сообщение об ошибке
Не удалось найти имя типа или пространства имен 'def' (отсутствует директива using или ссылка на сборку?)