我需要你的帮助。我在网络表单中有一个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"> </td>
</tr>
<tr>
<td colspan="3"> </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"> </td>
<td colspan="2"> </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"> </td>
<td class="auto-style4"> </td>
<td> </td>
</tr>
<tr>
<td class="auto-style2">
<asp:Label ID="lblRegistros" runat="server" Text="Registros:"></asp:Label>
</td>
<td class="auto-style3"> </td>
<td class="auto-style4"> </td>
<td> </td>
</tr>
<tr>
<td colspan="4">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" >
</asp:GridView>
</tr>
</table>
</div>
</form>
</body>
</html>
答案 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();
}
}