0

初めてなので、ちょっとコツが必要ですが、

私はこのコードビハインドを持っています:

List<Trucks> FinalListOfTrucks = new List<Trucks>();
    public class Trucks
    {
        public string Placa;
        public string Lock;
        public string Event;
        public DateTime Date;
        public string TipoCamion;
        public string Person;
        public string MissedDate;
    }

    protected void btnProcess_Click(object sender, EventArgs e)
        {
            Trucks item = new Trucks();
            item.Placa = "MA2323";
            item.Lock = "lock1";
            item.Event = "Event1";
            item.Date = DateTime.Now;
            item.TipoCamion = "TRUCK1";
            item.Person = "JULIAN";
            item.MissedDate = "";
            FinalListOfTrucks.Add(item);

            gvOriginal.DataSource = FinalListOfTrucks;
            gvOriginal.DataBind();
}

設計中:

<asp:Button ID="btnProcess" runat="server" Text="Process" 
        onclick="btnProcess_Click" />
    <asp:GridView ID="gvOriginal" runat="server"></asp:GridView>

しかし、Web アプリを実行しようとすると、次のエラーが発生します。

The data source for GridView with id 'gvOriginal' did not have any properties or attributes from which to generate columns. Ensure that your data source has content.

これを機能させるには、他に何かする必要がありますか?

4

2 に答える 2

4

受け取ったエラーメッセージが示すように、データバインディングはフィールドではなくプロパティの使用に依存しています。代わりにプロパティを使用するようにコードを簡単に変更できます。Trucks

public class Trucks
{
    public string Placa { get; set; }
    public string Lock { get; set; }
    public string Event { get; set; }
    public DateTime Date { get; set; }
    public string TipoCamion { get; set; }
    public string Person { get; set; }
    public string MissedDate { get; set; }
}

その変更を行うと、すべてが機能するはずです。

プロパティとパブリックフィールドの間には微妙な違いがいくつかあることに注意してください。プロパティは事実上メソッドの周りの構文糖衣であるため、次のようpublic string Placa {get;set;}なものに変換されます。

private string _placa;
public string GetPlaca() { return _placa; }
public void SetPlaca(string value) { _placa = value; }

メソッドとフィールドの違いについては、おそらくこの質問の範囲を超えています。

于 2012-11-01T20:02:25.817 に答える
1

リストのグリッドビューにバインドできますが、クラスは変数ではなくプロパティを使用する必要があります。

public class Trucks
{
    public string Placa{get;set;}
    public string Lock{get;set;}
    public string Event{get;set;}
    public DateTime Date{get;set;}
    public string TipoCamion{get;set;}
    public string Person{get;set;}
    public string MissedDate{get;set;}
}
于 2012-11-01T20:03:11.073 に答える