1

固定インデックスで GridView 列をリスト要素にバインドしようとしていますが、実行すると例外が発生しますGrid.DataBind();

選択したデータ ソースから「Misure[0].ID」という名前のフィールドまたはプロパティが見つかりません。

カスタム クラス:

public partial class RowTabellaConcentrazioneGiornaliera
{
    public DateTime Data { get; set; }
    public string DataString { get; set; }
    public List<MisuraConcentrazione> Misure { get; set; }

}

public partial class MisuraConcentrazione
{
    public double MediaOraTQ { get; set; }
    public double MediaOraNorm { get; set; }
    public double ID { get; set; }
    public string IVTQ { get; set; }
    public string IVN { get; set; }
    public string MeasureCod { get; set; }
    public string DescrizioneParametro { get; set; }
}

グリッドビュー:

    <asp:GridView ID="GridDatiConcentrazione" runat="server" AutoGenerateColumns="false" >
        <Columns>
            <asp:BoundField  DataField="DataString" HeaderText="Ora" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center" />
        </Columns>
    </asp:GridView>

方法:

    protected void SetTabellaSintesiConcentrazioniGiornaliere(BFStat.BFStat _BFStat1, GridView Grid)
    {
        //Carica Griglia di sintesi concentrazione
        List<RowTabellaConcentrazioneGiornaliera> y = _BFStat1.GetConcentrazioniOrarie();

        int i = 0;
        foreach (MisuraConcentrazione riga in y[0].Misure)
        {
            BoundField NewColonnaID = new BoundField();
            NewColonnaID.HeaderText = "Ind. Disp.";
            NewColonnaID.DataField = "Misure[" + i + "].ID";
            Grid.Columns.Add(NewColonnaID);

            BoundField NewColonnaValueTQ = new BoundField();
            NewColonnaValueTQ.HeaderText = "Valore TQ";
            NewColonnaValueTQ.DataField = "Misure[" + i + "].MediaOraTQ";
            Grid.Columns.Add(NewColonnaValueTQ);

            BoundField NewColonnaIVTQ = new BoundField();
            NewColonnaIVTQ.HeaderText = "Validità TQ";
            NewColonnaIVTQ.DataField = "Misure[" + i + "].IVTQ";
            Grid.Columns.Add(NewColonnaIVTQ);

            BoundField NewColonnaValueN = new BoundField();
            NewColonnaValueN.HeaderText = "Valore N";
            NewColonnaValueN.DataField = "Misure[" + i + "].MediaOraNorm";
            Grid.Columns.Add(NewColonnaValueN);

            BoundField NewColonnaIVN = new BoundField();
            NewColonnaIVN.HeaderText = "Validità N";
            NewColonnaIVN.DataField = "Misure[" + i + "].IVN";
            Grid.Columns.Add(NewColonnaIVN);

            i++;
        }

        Grid.DataSource = y;
        Grid.DataBind();
    }
4

1 に答える 1

0

より多くのグリッドとテーブルを使用して、問題を部分的に解決しました。

メイン コントロールを作成し、コードで列を追加しました。その列の中に、他の GridView を配置しました。GridView の代わりに選択したのは、その列を操作する方が簡単だからです。

データソースをより多くのリストに分割する必要がありましたが、これからは計算メソッドから視覚化メソッドにデータを渡すために別の構造を選択します。

みんな助けてくれてありがとう;)

于 2012-09-19T15:39:08.550 に答える