5.3 Выполнение работы
Текст файла Supermarket.Master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Supermarket.master.cs" Inherits="lab5.Supermarket" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Супермаркет</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<style type="text/css">
.style1
{
width: 154px;
height: 151px;
}
.style2
{
width: 196px;
}
.style3
{
height: 151px;
}
.style4
{
width: 201px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width:100%;">
<tr>
<td class="style1">
<asp:Image ID="Image1" runat="server" Height="170px" ImageUrl="~/img/s1.jpg"
Width="196px" />
</td>
<td align="center" bgcolor ="Blue" class="style3" >
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="25pt" Text="Супермаркет" ForeColor="#EEC900"></asp:Label>
</td>
</tr>
</table>
</div>
<table style="width: 100%; margin-top: 0px; height: 238px;">
<tr>
<td align="left" class="style4">
<asp:Label ID="Label2" runat="server"
Text="МЕНЮ" Font-Size="16pt"
ForeColor="#0066FF"></asp:Label>
<asp:Menu ID="Menu1" runat="server" Font-Size="16pt" ForeColor="Maroon"
Height="83px" Width="191px">
<Items>
<asp:MenuItem Text="Продавцы" Value="Продавцы">
</asp:MenuItem>
<asp:MenuItem Text="Товары" Value="Товары">
</asp:MenuItem>
</Items>
</asp:Menu>
</td>
<td>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>
</td>
</tr>
</table>
<table style="width:100%; height: 47px;">
<tr>
<td>
<hr style="color: #800000" /></td>
</tr>
<tr>
<td align="center">
<asp:Label ID="Label3" runat="server"
Text="Vlad(c)" ForeColor="Maroon">
</asp:Label>
</td>
</tr>
</table>
</form>
</body>
</html>
Текст файла Supermarket.Master.cs
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using NHibernate;
using NHibernate.Cfg;
using FluentNHibernate;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using FluentNHibernate.Automapping;
using NHibernate.Tool.hbm2ddl;
using System.Reflection;
namespace lab5
{
public partial class Supermarket : System.Web.UI.MasterPage
{
private ISessionFactory factory;
private ISession session;
//Метод открытия сессии
private ISession openSession(String host, int port, String database,
String user, String passwd)
{
ISession session = null;
//Получение ссылки на текущую сборку
Assembly mappingsAssemly = Assembly.GetExecutingAssembly();
if (factory == null)
{
//Конфигурирование фабрики сессий
factory = Fluently.Configure()
.Database(PostgreSQLConfiguration
.PostgreSQL82.ConnectionString(c => c
.Host(host)
.Port(port)
.Database(database)
.Username(user)
.Password(passwd)))
.Mappings(m => m.FluentMappings
.AddFromAssembly(mappingsAssemly))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
//Открытие сессии
session = factory.OpenSession();
return session;
}
//Метод для автоматического создания таблиц в базе данных
private static void BuildSchema(Configuration config)
{
//new SchemaExport(config).Create(false, true);
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Page_Init(object sender, EventArgs e)
{
session = openSession("localhost", 5432,
"market2", "postgres", "06031992");
Session["hbmsession"] = session;
}
}
}
Текст файла Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="lab5._Default" MasterPageFile="~/Supermarket.Master"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<table align="center">
<tr align="center">
<td>
<asp:Label ID="Label4" runat="server" Text="Список продавцов"
Font-Size="20pt" ForeColor="Maroon" Font-Bold="True"/>
</td>
</tr>
<tr>
<td>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
ShowFooter="true" ShowHeader="true"
AllowPaging="true" PageSize="10"
onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing"
onrowcancelingedit="GridView1_RowCancelingEdit"
onpageindexchanging="GridView1_PageIndexChanging"
onrowupdating="GridView1_RowUpdating"
onrowcommand="GridView1_RowCommand"
Font-Size="14pt"
HorizontalAlign="Center"
Width="804px" Height="500px">
<Columns>
<asp:TemplateField HeaderText="Имя продавца"
ItemStyle-Width="200">
<ItemTemplate>
<asp:Label id="myLabel1" runat="server"
Text='<%# Bind("NameProd")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox1" runat="server" Width="200"
Text='<%# Bind("NameProd") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox1" runat="server"
Width="200" Text='<%# Bind("NameProd") %>' />
</FooterTemplate>
<ItemStyle Width="200px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Фамилия продавца"
ItemStyle-Width="300">
<ItemTemplate>
<asp:Label id="myLabel2" runat="server"
Text='<%# Bind("Surname")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox2" runat="server" Width="300"
Text='<%# Bind("Surname") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox2" runat="server" Width="300"
Text='<%# Bind("Surname") %>' />
</FooterTemplate>
<ItemStyle Width="300px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Год рождения"
ItemStyle-Width="300">
<ItemTemplate>
<asp:Label id="myLabel3" runat="server"
Text='<%# Bind("God")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox3" runat="server" Width="300"
Text='<%# Bind("God") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox3" runat="server"
Width="300" Text='<%# Bind("God") %>' />
</FooterTemplate>
<ItemStyle Width="300px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Команды" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="ibEdit" runat="server"
CommandName="Edit" Text="Edit"
ImageUrl="~/img/edit_32.png" />
<asp:ImageButton ID="ibDelete" runat="server"
CommandName="Delete" Text="Delete"
ImageUrl="~/img/delete_32.png" />
<asp:ImageButton ID="lbSelect" runat="server" CommandName="Select" ImageUrl="~/img/information_32.png"
CommandArgument='<%# Container.DataItemIndex %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="ibUpdate" runat="server" CommandName="Update" Text="Update"
ImageUrl="~/img/5.png" />
<asp:ImageButton ID="ibCancel" runat="server" CommandName="Cancel" Text="Cancel"
ImageUrl="~/img/7.png" />
</EditItemTemplate>
<FooterTemplate>
<asp:ImageButton ID="ibInsert" runat="server"
CommandName="Insert" OnClick="ibInsert_Click"
ImageUrl="~/img/add_32.png" />
</FooterTemplate>
<FooterStyle HorizontalAlign="Center"></FooterStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="200" align="center">Имя продавца</td>
<td width="300" align="center">Фамилия продавца</td>
<td width="300" align="center">Год рождения</td>
<td>Команды</td>
</tr>
<tr>
<td>
<asp:TextBox ID="emptyGroupNameTextBox" runat="server"
Width="200"/>
</td>
<td>
<asp:TextBox ID="emptyCuratorNameTextBox" runat="server"
Width="300"/>
</td>
<td>
<asp:TextBox ID="emptyHeadmanNameTextBox" runat="server"
Width="300"/>
</td>
<td align="center">
<asp:ImageButton ID="emptyImageButton" runat="server"
ImageUrl="~/img/add.png"
OnClick="ibInsertInEmpty_Click"/>
</td>
</tr>
</table>
</EmptyDataTemplate>
<PagerStyle HorizontalAlign ="Center" />
</asp:GridView>
</td>
</tr>
</table>
</asp:Content>
Текст файла Default.aspx.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using lab5.dao;
using lab5.domain;
using lab5.mapping;
using NHibernate;
namespace lab5
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Page_Prerender(object sender, EventArgs e)
{
ISession session = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(session);
IProdDAO prodDAO = factory.getProdDAO();
List <Prod> prod = prodDAO.GetAll();
GridView1.DataSource = prod;
GridView1.DataBind();
}
//Обработчик нажатия на добавить
protected void ibInsert_Click(object sender, EventArgs e)
{
//Получаем значения полей
string s1 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox1")).Text;
string s2 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox2")).Text;
string s3 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox3")).Text;
//Создаем группу
Prod prod = new Prod();
prod.NameProd = s1;
prod.Surname = s2;
prod.God = s3;
//Создаем DAO группы
ISession session = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(session);
IProdDAO prodDAO = factory.getProdDAO();
prodDAO.SaveOrUpdate(prod);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
//Добавление первой записи в пустой GridView
protected void ibInsertInEmpty_Click(object sender, EventArgs e)
{
var parent = ((Control)sender).Parent;
var groupNameTextBox = parent
.FindControl("emptyGroupNameTextBox") as TextBox;
var curatorNameTextBox = parent
.FindControl("emptyCuratorNameTextBox") as TextBox;
var headmanNameTextBox = parent
.FindControl("emptyHeadmanNameTextBox") as TextBox;
Prod prod = new Prod();
prod.NameProd = groupNameTextBox.Text;
prod.Surname = curatorNameTextBox.Text;
prod.God = headmanNameTextBox.Text;
ISession session = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(session);
IProdDAO prodDAO = factory.getProdDAO();
prodDAO.SaveOrUpdate(prod);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
//Перевести строку в режим редактирования
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//Получить индекс выделенной строки
int index = e.NewEditIndex;
GridViewRow row = GridView1.Rows[index];
//Получение старых значений полей в строке GridView
string oldNameProd = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
//Сохранение названия группы в коллекции ViewState
ViewState["oldNameProd"] = oldNameProd;
GridView1.EditIndex = index;
GridView1.ShowFooter = false;
GridView1.DataBind();
}
//Отмена редактирования записи
protected void GridView1_RowCancelingEdit(object sender,
GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
//Редактирование строки
protected void GridView1_RowUpdating(object sender,GridViewUpdateEventArgs e)
{
int index = e.RowIndex;
GridViewRow row = GridView1.Rows[index];
string newNameProd =
((TextBox)(row.Cells[0].FindControl("myTextBox1"))).Text;
string newSurname =
((TextBox)(row.Cells[1].FindControl("myTextBox2"))).Text;
string newGod =
((TextBox)(row.Cells[2].FindControl("myTextBox3"))).Text;
string oldNameProd= (string)ViewState["oldNameProd"];
//Создание DAO группы
ISession hbmSession = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(hbmSession);
IProdDAO prodDAO = factory.getProdDAO();
//Получение группы по имени
Prod prod = prodDAO.getProdByName(oldNameProd);
prod.NameProd = newNameProd;
prod.Surname = newSurname;
prod.God = newGod;
prodDAO.SaveOrUpdate(prod);
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
//Удаление записи
protected void GridView1_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
//Получить индекс выделенной строки
int index = e.RowIndex;
GridViewRow row = GridView1.Rows[index];
//Получить название группы
string key = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
//Создание DAO группы
ISession hbmSession = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(hbmSession);
IProdDAO prodDAO = factory.getProdDAO();
//Получение группы по имени
Prod prod = prodDAO.getProdByName(key);
//Удаление группы
if (prod != null)
{
prodDAO.Delete(prod);
}
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
string prodName = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
Session["keyProdName"] = prodName;
Response.Redirect("TovarForm.aspx");
}
}
//Изменение номера текущей страницы
protected void GridView1_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
}
}
Текст файла TovarForm.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TovarForm.aspx.cs" Inherits="lab5.TovarForm" MasterPageFile="~/Supermarket.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
runat="server">
<table style="width:100%;">
<tr align="center">
<td>
<asp:Label ID="Label4" runat="server"
Text="Список товаров проданных продавцом"
Font-Bold="True" Font-Size="20pt" ForeColor="Maroon">
</asp:Label>
<asp:Label ID="Label5" runat="server" Font-Bold="True"
Font-Size="20pt" ForeColor="Maroon">
</asp:Label>
</td>
</tr>
<tr>
<td>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="false"
ShowFooter="true" ShowHeader="true"
AllowPaging="true" PageSize="10"
Font-Size="14pt" HorizontalAlign="Center"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating"
onpageindexchanging="GridView1_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="Наименование"
ItemStyle-Width="250">
<ItemTemplate>
<asp:Label id="myLabel1" runat="server"
Text='<%# Bind("Name")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox1" runat="server" Width="250"
Text='<%# Bind("Name") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox1" runat="server"
Width="250" Text='<%# Bind("Name") %>' />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Цена"
ItemStyle-Width="250">
<ItemTemplate>
<asp:Label id="myLabel2" runat="server"
Text='<%# Bind("Price")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox2" runat="server" Width="250"
Text='<%# Bind("Price") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox2" runat="server"
Width="250" Text='<%# Bind("Price") %>' />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Вес" ItemStyle-Width="50">
<ItemTemplate>
<asp:Label id="myLabel3" runat="server"
Text='<%# Bind("Ves")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox3" runat="server" Width="50"
Text='<%# Bind("Ves") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox3" runat="server"
Width="50" Text='<%# Bind("Ves") %>' />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Команды"
ItemStyle-HorizontalAlign="Center"
FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="ibEdit" runat="server"
CommandName="Edit" Text="Edit" ImageUrl="~/img/applications.png"/>
<asp:ImageButton ID="ibDelete" runat="server"
CommandName="Delete" Text="Delete"
ImageUrl="~/img/delete.png" />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="ibUpdate" runat="server"
CommandName="Update" Text="Update"
ImageUrl="~/img/5.png" />
<asp:ImageButton ID="ibCancel" runat="server"
CommandName="Cancel" Text="Cancel"
ImageUrl="~/img/7.png" />
</EditItemTemplate>
<FooterTemplate>
<asp:ImageButton ID="ibInsert" runat="server"
CommandName="Insert" OnClick="ibInsert_Click"
ImageUrl="~/img/add.png" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="250" align="center">
Наименование
</td>
<td width="250" align="center">
Цена
</td>
<td width="50" align="center">
Вес
</td>
<td>
Команды
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="emptyFirstNameTextBox" runat="server"
Width="250"/>
</td>
<td>
<asp:TextBox ID="emptyLastNameTextBox" runat="server"
Width="250"/>
</td>
<td>
<asp:TextBox ID="emptySexTextBox" runat="server"
Width="50"/>
</td>
<td align="center">
<asp:ImageButton ID="emptyImageButton" runat="server"
ImageUrl="~/img/add.png"
OnClick="ibInsertInEmpty_Click"/>
</td>
</tr>
</table>
</EmptyDataTemplate>
<PagerStyle HorizontalAlign ="Center" />
</asp:GridView>
</td>
</tr>
</table>
</asp:Content>
Текст файла TovarForm.aspx.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using lab5.dao;
using lab5.domain;
using lab5.mapping;
using NHibernate;
namespace lab5
{
public partial class TovarForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Page_Prerender(object sender, EventArgs e)
{
string keyProd = (string)Session["keyProdName"];
Label5.Text = keyProd;
ISession session = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(session);
IProdDAO prodDAO = factory.getProdDAO();
IList <Tovars> tovars = prodDAO.getAllTovarsOfProd(keyProd);
GridView1.DataSource = tovars;
GridView1.DataBind();
}
protected void ibInsert_Click(object sender, EventArgs e)
{
string keyProd = (string)Session["keyProdName"];
//Получаем значения полей
string s1 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox1")).Text;
string s2 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox2")).Text;
string s3 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox3")).Text;
//Создаем сессию
ISession session = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(session);
IProdDAO prodDAO = factory.getProdDAO();
Prod prod = prodDAO.getProdByName(keyProd);
ITovarsDao tovarsDAO = factory.getTovarsDAO();
//Создаем объект студента и заполняем его поля
Tovars tovars = new Tovars();
tovars.Name = s1;
tovars.Price = s2;
tovars.Ves = s3;
tovars.Prod = prod;
prod.TovarsList.Add(tovars);
//Сохраняем объект студента
tovarsDAO.SaveOrUpdate(tovars);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
protected void ibInsertInEmpty_Click(object sender, EventArgs e)
{
string keyProd = (string)Session["keyGroupName"];
//Получаем значения полей ввода
var parent = ((Control)sender).Parent;
var nameTextBox = parent
.FindControl("emptyFirstNameTextBox") as TextBox;
var priceTextBox = parent
.FindControl("emptyLastNameTextBox") as TextBox;
var vesTextBox = parent.FindControl("emptySexTextBox") as TextBox;
//Создаем сессию
ISession session = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(session);
IProdDAO prodDAO = factory.getProdDAO();
Prod prod = prodDAO.getProdByName(keyProd);
ITovarsDao tovarsDAO = factory.getTovarsDAO();
//Создаем объект студента и заполняем его поля
Tovars tovars = new Tovars();
tovars.Name = nameTextBox.Text;
tovars.Price = priceTextBox.Text;
tovars.Ves = vesTextBox.Text;
tovars.Prod = prod;
prod.TovarsList.Add(tovars);
//Сохраняем объект студента
tovarsDAO.SaveOrUpdate(tovars);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
//Удаление строки
protected void GridView1_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
string keyProd = (string)Session["keyProdName"];
//Получить индекс выделенной строки
int index = e.RowIndex;
GridViewRow row = GridView1.Rows[index];
//Получить имя студента
string name = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
ISession hbmSession = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(hbmSession);
ITovarsDao tovarsDAO = factory.getTovarsDAO();
Tovars tovars =
tovarsDAO.getTovarByProdName(keyProd, name);
//Удаление студента
if (tovars != null)
{
tovars.Prod.TovarsList.Remove(tovars);
tovarsDAO.Delete(tovars);
}
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
//Перевод строки в режим редактирования
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//Получить индекс выделенной строки
int index = e.NewEditIndex;
GridViewRow row = GridView1.Rows[index];
//Получение старых значений полей в строке GridView
string oldName = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
//Сохранение названия группы в коллекции ViewState
ViewState["oldName"] = oldName;
GridView1.EditIndex = index;
GridView1.ShowFooter = false;
GridView1.DataBind();
}
//Отмена редактирования строки
protected void GridView1_RowCancelingEdit(object sender,
GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
//Редактирование строки
protected void GridView1_RowUpdating(object sender,
GridViewUpdateEventArgs e)
{
string keyProd = (string)Session["keyProdName"];
int index = e.RowIndex;
GridViewRow row = GridView1.Rows[index];
string newName =
((TextBox)(row.Cells[0].FindControl("myTextBox1"))).Text;
string newPrice =
((TextBox)(row.Cells[1].FindControl("myTextBox2"))).Text;
string newVes = ((TextBox)(row.Cells[2].FindControl("myTextBox3"))).Text;
string oldName = (string)ViewState["oldName"];
//Создание DAO группы
ISession hbmSession = (ISession)Session["hbmsession"];
DaoFactory factory = new NHibernateDAOFactory(hbmSession);
ITovarsDao tovarsDAO = factory.getTovarsDAO();
//Получение группы по имени
Tovars tovars =
tovarsDAO.getTovarByProdName(keyProd, oldName);
tovars.Name = newName;
tovars.Price = newPrice;
tovars.Ves = newVes;
tovarsDAO.SaveOrUpdate(tovars);
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
}
}
