0

メインのグリッドビュー"GridViewTtransmittals"には、ネストされたグリッドビューという名前"GridViewTranstoCon"があります。「GridViewTranstoCon」にデータがある場合は問題ありませんが、データがない場合はエラーが返され、"A data item was not found in the container",null 値を返すか、非表示にするのが好きです。コードは次のようになります。

protected void GridViewTtransmittals_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.DataItem == null)
        return;
    TransmittaltoConPresentationModel transmittaltoCon = (TransmittaltoConPresentationModel)e.Row.DataItem;
    GridView g2 = (GridView)e.Row.FindControl("GridViewTranstoCon");

    if (transmittaltoCon.TranstoCons != null)
    {
        g2.DataSource = transmittaltoCon.TranstoCons;
        g2.DataBind();
    }
}

メイン グリッドビュー「GridViewTtransmittals」のデータ ソースのコードは、以下のコードから来ています。

private void DisplayTransmittals()
{
    if (_Transmittals.Any())
    {
        var query = from transmittalno in _Transmittals

        select new TransmittaltoConPresentationModel { TransID = transmittalno.TransID,
                   Transmittal = transmittalno.TRANSMITTAL, TranstoCons = from doctranstocon in _DocTranstoCons 
                   where doctranstocon == null || transmittalno.TransID == doctranstocon.Transid
                   select doctranstocon != null ? doctranstocon.tblTranstoCon : null};

        GridViewTtransmittals.DataSource = query;
    }
    else
    {
        GridViewTtransmittals.DataSource = null;
    }
    GridViewTtransmittals.DataBind();
}
4

1 に答える 1

0

これを含めてみてください

protected void GridViewTtransmittals_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if(e.Row.RowType == DataControlRowType.DataRow)
   {

   }
}
于 2012-10-19T05:15:57.277 に答える