ASP показывает только первый вид сетки при использовании типа var - PullRequest
0 голосов
/ 17 сентября 2018

Я просто плохой новичок в ASP и C #.При работе под двумя GridView, просто перейдите на страницу default.aspx Gridview1.Попытался также определить DataSourceId в коде aspx, но безуспешно.Похоже, ASP показывает только первый сеточный вид, найденный в коде, игнорируя второй.Очень ценю вашу помощь!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using CsvHelper.TypeConversion;
using CsvHelper;
using System.IO;
sing CsvHelper.Configuration;
using System.Data;
using System.Windows;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        StreamReader sr = new StreamReader(Server.MapPath(@"MAD-DC01.MAD-TEST.ES.201808.csv"));
        CsvReader csvread = new CsvReader(sr);

        IEnumerable<TestRecord> record = csvread.GetRecords<TestRecord>();
        var Prints = from t in record     
                     group t by new { t.Airline, t.Kiosk_name,t.Type_print } into grupo
                     orderby grupo.Key.Airline ascending
                     select new
                            {
                                 Aerolinea = grupo.Key.Airline,
                                 Kiosko = grupo.Key.Kiosk_name,
                                 Impresion=grupo.Key.Type_print,
                                 cuenta = grupo.Sum(x => x.Prints_outs),
                            };
    var Total_Prints = from t2 in record
                       group t2 by new { t2.Airline,t2.Type_print } into grupo2
                       orderby grupo2.Key.Airline ascending
                       select new
                              {
                                  Aerolinea = grupo2.Key.Airline,
                                  Impresion = grupo2.Key.Type_print,
                                  cuenta = grupo2.Sum(x => x.Prints_outs),
                              }; 

    GridView1.DataSource = Prints.ToList();
    GridView1.DataBind();

    GridView2.DataSource = Total_Prints.ToList();
    GridView2.DataBind();
}

public class TestRecord // Test record class
{
    public DateTime Date { get; set; }
    public string Airport { get; set; }
    public string Type_print { get; set; }
    public string Airline { get; set; }
    public string Kiosk_name { get; set; }
    public Int32 Prints_outs { get; set; }

}

Это часть aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
 <div>

     <asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1">
     </asp:GridView>
     <asp:GridView ID="GridView2" runat="server" OnSelectedIndexChanged="GridView2_SelectedIndexChanged">
     </asp:GridView>
     <br />

 </div>
</form>
</body>
</html>

1 Ответ

0 голосов
/ 18 сентября 2018

Я исправил проблему, заменив

IEnumerable<TestRecord> record = csvread.GetRecords<TestRecord>();  

на:

List<TestRecord> record = new List<TestRecord>();  
while (csvread.Read()) {  
    TestRecord Record = csvread.GetRecord<TestRecord>();
    record.Add(Record);}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...