单击按钮/asp.net时,在Gridview中显示List <t>

时间:2018-06-24 18:27:34

标签: asp.net list gridview

我需要你的帮助。我在网络表单中有一个5文本框,当我按保存按钮时,信息将保存在对象列表中。我想通过按一个按钮在gridview中显示该信息。我尝试了多种方式,但是没有用。你能帮忙吗.. ???

这是课程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Capa_Negocios
{

    public class Nota
    {
        string num_Oficio;
        string asunto;
        string destinatario;
        string fecha;
        string cod_ubicacion;

        public Nota(string ofc, string asun, string dest, string fec, string cod)
        {
            num_Oficio = ofc;
            asunto = asun;
            destinatario = dest;
            fecha = fec;
            cod_ubicacion = cod;
        }

        public string Número_Oficio { get; set; }
        public string Asunto { get; set; }
        public string Destinatario { get; set; }
        public string Fecha { get; set; }
        public string Código_Ubicación { get; set; }
    }


}

这是逻辑层

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Capa_Negocios
{
    public class Logica
    {
        List<Nota> Lista_Oficios = new List<Nota>();

        public Nota AgregarNota(string ofic, string asun, string dest, string fech, string cod)
        {
            Nota New_note = new Nota(ofic, asun, dest, fech, cod);
            return New_note;
        }

        public void cargarlista(Nota obj)
        {
            Lista_Oficios.Add(obj);

        }

        public List<Nota> Lista()
        {
            return Lista_Oficios;
        }

    }
}

wfrmOficio.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Capa_Negocios;

namespace Datos_Oficio
{

        public partial class wfrmOficio : System.Web.UI.Page
    {
        Capa_Negocios.Logica reg = new Capa_Negocios.Logica();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                List<Nota> Lista_Oficios = (List<Nota>) Session["list"];


            }


        }


        protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
        {

            reg.cargarlista(reg.AgregarNota(txtNumOfic.Text, txtAsunto.Text, txtDest.Text, txtFecha.Text, txtCodigo.Text));
            Session["list"] = reg.Lista();
            lblMensaje.Text = "Oficio agregado correctamente";
            lblRegistros.Text = reg.Lista().Count.ToString();


        }

        private void llenarGrid()
        {

            GridView1.DataSource = reg.Lista() ;
            GridView1.DataBind();
            Session["list"] = reg.Lista();
        }


        protected void btnListar_Click(object sender, ImageClickEventArgs e)
        {

            llenarGrid();
        }

        protected void Unnamed1_Click(object sender, ImageClickEventArgs e)
        {

        }
    }
}

wfrmOficio.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="wfrmOficio.aspx.cs" Inherits="Datos_Oficio.wfrmOficio" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            text-align: center;
            font-weight: normal;
        }
        .auto-style2 {
            width: 275px;
        }
        .auto-style3 {
            width: 301px;
        }
        .auto-style4 {
            width: 164px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <table style="width:100%;">
            <tr>
                <td colspan="3"><h1 class="auto-style1"><strong>Ingreso de Datos / Oficio</strong></h1></td>
                <td rowspan="10">
                    <asp:ImageButton ID="ImageButton4" runat="server" ImageUrl="~/Recursos/icono_checklist.png" />
                </td>
            </tr>
            <tr>
                <td colspan="3">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="3">&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblNumOficio" runat="server" Font-Bold="True" ForeColor="#000099" Text="Número de Oficio:"></asp:Label>
                </td>
                <td colspan="2">
                    <asp:TextBox ID="txtNumOfic" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblAsunto" runat="server" Font-Bold="True" ForeColor="#003399" Text="Asunto:"></asp:Label>
                </td>
                <td colspan="2">
                    <asp:TextBox ID="txtAsunto" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblDestinatario" runat="server" Font-Bold="True" ForeColor="#003399" Text="Destinatario:"></asp:Label>
                </td>
                <td colspan="2">
                    <asp:TextBox ID="txtDest" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblFechaOficio" runat="server" Font-Bold="True" ForeColor="#003399" Text="Fecha de Oficio:"></asp:Label>
                </td>
                <td colspan="2">
                    <asp:TextBox ID="txtFecha" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblCodigo" runat="server" Font-Bold="True" ForeColor="#003399" Text="Código de ubicación / Archivo Físico"></asp:Label>
                </td>
                <td colspan="2">
                    <asp:TextBox ID="txtCodigo" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">&nbsp;</td>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:ImageButton ID="btnGuardar" runat="server" Height="49px" ImageUrl="~/Recursos/stock_save.png" Width="48px" OnClick="btnGuardar_Click" />
                </td>
                <td class="auto-style3">
                    <asp:ImageButton ID="btnListar" runat="server" Height="42px" ImageUrl="~/Recursos/listar.png" Width="43px" OnClick="btnListar_Click" />
                </td>
                <td class="auto-style4">
                    <asp:ImageButton runat="server" Height="51px" ImageUrl="~/Recursos/exit.png" Width="61px" OnClick="Unnamed1_Click" />
                </td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblMensaje" runat="server"></asp:Label>
                </td>
                <td class="auto-style3">&nbsp;</td>
                <td class="auto-style4">&nbsp;</td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td class="auto-style2">
                    <asp:Label ID="lblRegistros" runat="server" Text="Registros:"></asp:Label>
                </td>
                <td class="auto-style3">&nbsp;</td>
                <td class="auto-style4">&nbsp;</td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td colspan="4">
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" >

                    </asp:GridView>


            </tr>
        </table>

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

1 个答案:

答案 0 :(得分:0)

尝试一下:

从Page_Load事件中删除代码:

 protected void Page_Load(object sender, EventArgs e)
  {
  }

更新btnGuardar_Click方法代码,如下所示:

    protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
    { 
       List<Nota> notaList;

       if(Session["list"]!=null) {
          notaList = (List<Nota>)Session["list"];       
        }
        else {
          notaList = new List<Nota>();
        }

        notaList.Add(reg.AgregarNota(txtNumOfic.Text, txtAsunto.Text, txtDest.Text, txtFecha.Text, txtCodigo.Text));

         Session["list"] = notaList;
    }

更新llenarGrid方法代码:

  private void llenarGrid()
        {
          if(Session["list"]!=null) {
             List<Nota> notaList = (List<Nota>)Session["list"];       

            GridView1.DataSource = notaList;
            GridView1.DataBind(); 
           }
        }