Web- , (, Microsoft Internet Explorer, Netscape Navigator, Mozilla Firefox .) HTML , , , .
, ASP ASP.NET 1.x. , , , , . , .
ASP.NET 2.0 , HTML , . , , Page , .
<%@ Page ie:MasterPageFile="ieMainTemplate.master" opera:MasterPageFile="operaMainTemplate.master " mozilla:MasterPageFile="mozillaMainTemplate.master " %>
ASP.NET :
%WINDIT%\Microsoft.NET\Framework\\CONFIG\Browsers
WEB-, , , , , , . , , PostgreSQL .
1. - ASP.NET ( , , , Web, - ASP.NET, , lab5).
2. PostgreSQL, NHibernate Fluent NHibernate. :
postgreSQL | http://www.postgresql.org/ |
NHibernate | http://sourceforge.net/projects/nhibernate/ |
Fluent NHibernate | http://fluentnhibernate.org/ |
:
- Npgsql2.0.10-bin-ms.net.zip
- NHibernate-2.1.2.GA-bin.zip
- fluentnhibernate-1.1.zip
:
Npgsql.dll |
Mono.Security.dll |
NHibernate.dll |
Antlr3.Runtime.dll |
Iesi.Collections.dll |
log4net.dll |
Castle.DynamicProxy2.dll |
Castle.Core.dll |
NHibernate.ByteCode.Castle.dll |
FluentNHibernate.dll |
Npgsql.dll, NHibernate.dll, FluentNHibernate.dll NHibernate.ByteCode.Castle ( , , ).
|
|
3. dao, domain, img, mapping. dao, domain, mapping DAO, , img .
dao, domain, img, mapping 5.1.
5.1 dao, domain, img, mapping
4. , WEB-. , , Total Commander.
dao dao WEB-. 5.2.
5.2 dao dao WEB-
domain mapping WEB-.
, ( dao , , dao WEB- ). domain mapping. . 5.3.
5.3
, WEB-, , , , .
5. WEB-. . , . , , ( ) . , , .
6. WEB-. , , , Web, , , University .
7. University ( University, , ( )). , html ASP.NET. , , , html- . :
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
|
|
</asp:ContentPlaceHolder>
, , .
.
8. University ( , , ). .
9. , Table HTML. header ( ), , footer( ). .
10. header ( ) . 2, 1. , , , <tr> <td>.
:
<table style="width:100%;">
<tr>
<td>
</td>
<td>
</td>
</tr>
</table>
Image , Label . Image , img. URL ( ImageUrl). Text Label WEB-. :
<table style="width:100%;" cellpadding="0" cellspacing="0">
<tr>
<td width="200">
<asp:Image ID="Image1" runat="server" ImageUrl="~/img/1.png" />
</td>
<td align="center" bgcolor="#8B0000">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="20pt"
Text=" "
ForeColor="#EEC900">
</asp:Label>
</td>
</tr>
</table>
, , , .
11. , . . , , , , , , . , . Menu . ContentPlaceHolder, . :
<table style="width:100%;">
<tr>
<td width="200" valign="top">
<table style="width:100%;">
<tr>
<td align="left">
<asp:Label ID="Label2" runat="server" Text=""
Font-Size="16pt" ForeColor="Maroon">
</asp:Label>
|
|
</td>
</tr>
<tr>
<td>
<asp:Menu ID="Menu1" runat="server"
Font-Size="16pt" ForeColor="Maroon">
<Items>
<asp:MenuItem Text="" Value="">
</asp:MenuItem>
<asp:MenuItem Text="" Value="">
</asp:MenuItem>
</Items>
</asp:Menu>
</td>
</tr>
</table>
</td>
<td>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
, , Label Menu, .
12. , . . , . :
<table style="width:100%;">
<tr>
<td>
<hr style="color: #800000" />
</td>
</tr>
<tr>
<td align="center">
<asp:Label ID="Label3" runat="server"
Text="OrIoN (c)" ForeColor="Maroon">
</asp:Label>
</td>
</tr>
</table>
, 5.4.
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="University.master.cs" Inherits="lab5.University" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<table style="width:100%;" cellpadding="0" cellspacing="0">
<tr>
<td width="200">
<asp:Image ID="Image1" runat="server" ImageUrl="~/img/1.png" />
</td>
<td align="center" bgcolor="#8B0000">
<asp:Label ID="Label1" runat="server"
Font-Bold="True" Font-Size="20pt"
Text=" "
ForeColor="#EEC900">
</asp:Label>
</td>
</tr>
</table>
<table style="width:100%;">
<tr>
<td width="200" valign="top">
<table style="width:100%;">
<tr>
<td align="left">
<asp:Label ID="Label2" runat="server"
Text="" Font-Size="16pt"
ForeColor="Maroon">
</asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Menu ID="Menu1" runat="server"
Font-Size="16pt" ForeColor="Maroon">
<Items>
<asp:MenuItem Text="" Value="">
</asp:MenuItem>
<asp:MenuItem Text=""
Value="">
|
|
</asp:MenuItem>
</Items>
</asp:Menu>
</td>
</tr>
</table>
</td>
<td>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1"
runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
<table style="width:100%;">
<tr>
<td>
<hr style="color: #800000" />
</td>
</tr>
<tr>
<td align="center">
<asp:Label ID="Label3" runat="server" Text="OrIoN (c)"
ForeColor="Maroon"></asp:Label>
</td>
</tr>
</table>
</form>
</body>
</html>
5.4
13. NHibernate. C# . ASP.NET # , , . University.Master, C# University.Master.cs. Page_Load, :
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);
}
Page_Init:
protected void Page_Init(object sender, EventArgs e)
{
session = openSession("localhost", 5432,
"university", "postgres", "111111");
Session["hbmsession"] = session;
}
Page_Init , NHibernate, Session , HTTP- . Page_Init, , . , Web.config.
.
14. , . , , .
Default.aspx , .
Default.aspx . :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="lab5._Default"%>
<asp:Content> Default.aspx :
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
runat="server">
</asp:Content>
:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="lab5._Default" MasterPageFile="~/University.Master"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
runat="server">
</asp:Content>
<html>, <body>, <form> . , .
15. Default.aspx. . , , . , , .
|
|
, . , GridView . . , , , . GridView , :
RowEditing , ;
RowUpdating Update ;
RowDeleting Delete;
RowCancelingEdit ;
RowCommand , ;
PageIndexChanging GridView, ;
Default.aspx :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="lab5._Default" MasterPageFile="~/University.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" Font-Size="14pt"
onrowediting="GridView1_RowEditing"
onrowcancelingedit="GridView1_RowCancelingEdit"
onpageindexchanging="GridView1_PageIndexChanging"
HorizontalAlign="Center"
onrowupdating="GridView1_RowUpdating"
onrowcommand="GridView1_RowCommand" >
<Columns>
<!- -->
<asp:TemplateField HeaderText=" "
ItemStyle-Width="200">
<ItemTemplate>
<asp:Label id="myLabel1" runat="server"
Text='<%# Bind("GroupName")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox1" runat="server" Width="200"
Text='<%# Bind("GroupName") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox1" runat="server"
Width="200" Text='<%# Bind("GroupName") %>' />
</FooterTemplate>
</asp:TemplateField>
<!- -->
<asp:TemplateField HeaderText=" "
ItemStyle-Width="300">
<ItemTemplate>
<asp:Label id="myLabel2" runat="server"
Text='<%# Bind("CuratorName")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox2" runat="server" Width="300"
Text='<%# Bind("CuratorName") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox2" runat="server" Width="300"
Text='<%# Bind("CuratorName") %>' />
</FooterTemplate>
</asp:TemplateField>
<!- -->
<asp:TemplateField HeaderText=" "
ItemStyle-Width="300">
<ItemTemplate>
<asp:Label id="myLabel3" runat="server"
Text='<%# Bind("HeadmanName")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox3" runat="server" Width="300"
Text='<%# Bind("HeadmanName") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox3" runat="server"
Width="300" Text='<%# Bind("HeadmanName") %>' />
</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/6.png" />
<asp:ImageButton ID="ibDelete" runat="server"
CommandName="Delete" Text="Delete"
ImageUrl="~/img/3.png" />
<asp:ImageButton ID="lbSelect" runat="server"
CommandName="Select"
ImageUrl="~/img/4.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/2.png" />
</FooterTemplate>
</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/2.png"
OnClick="ibInsertInEmpty_Click"/>
</td>
</tr>
</table>
</EmptyDataTemplate>
<PagerStyle HorizontalAlign ="Center" />
</asp:GridView>
</td>
</tr>
</table>
</asp:Content>
, <Columns>. . , . , . , .
GridView <EmptyDataTemplate>.
img.
GridView.
16. C# Default.aspx. , NHibernate, NHibernate c Session.
Page_Prerender Page_Load:
protected void Page_Prerender(object sender, EventArgs e)
{
ISession session = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(session);
IGroupDAO groupDAO = factory.getGroupDAO();
List<Group> groups = groupDAO.GetAll();
GridView1.DataSource = groups;
GridView1.DataBind();
}
Session NHibernate.
17. . GridView , .
:
//
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;
//
Group group = new Group();
group.GroupName = s1;
group.CuratorName = s2;
group.HeadmanName = s3;
// DAO
ISession session = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(session);
IGroupDAO groupDAO = factory.getGroupDAO();
groupDAO.SaveOrUpdate(group);
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;
Group group = new Group();
group.GroupName = groupNameTextBox.Text;
group.CuratorName = curatorNameTextBox.Text;
group.HeadmanName = headmanNameTextBox.Text;
ISession session = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(session);
IGroupDAO groupDAO = factory.getGroupDAO();
groupDAO.SaveOrUpdate(group);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
18. . RowDeleting, :
//
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);
IGroupDAO groupDAO = factory.getGroupDAO();
//
Group group = groupDAO.getGroupByName(key);
//
if (group!= null)
{
groupDAO.Delete(group);
}
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
19. . GridView . , . , . :
//
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//
int index = e.NewEditIndex;
GridViewRow row = GridView1.Rows[index];
// GridView
string oldGroupName = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
// ViewState
ViewState["oldGroupName"] = oldGroupName;
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 newGroupName =
((TextBox)(row.Cells[0].FindControl("myTextBox1"))).Text;
string newCuratorName =
((TextBox)(row.Cells[1].FindControl("myTextBox2"))).Text;
string newHeadmanName =
((TextBox)(row.Cells[2].FindControl("myTextBox3"))).Text;
string oldGroupName = (string)ViewState["oldGroupName"];
// DAO
ISession hbmSession = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(hbmSession);
IGroupDAO groupDAO = factory.getGroupDAO();
//
Group group = groupDAO.getGroupByName(oldGroupName);
group.GroupName = newGroupName;
group.CuratorName = newCuratorName;
group.HeadmanName = newHeadmanName;
groupDAO.SaveOrUpdate(group);
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
20. . . :
//
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
string groupName = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
Session["keyGroupName"] = groupName;
Response.Redirect("StudentForm.aspx");
}
}
21. GridView , , . :
//
protected void GridView1_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
WEB- 5.5.
5.5 WEB-
. .
22. WEB-, ASP.NET. WEB- , , , Web Web Form. WEB-, StudentForm .
23. WEB- StudentForm . , , WEB- University. WEB- StudentForm :
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="StudentForm.aspx.cs" Inherits="lab5.StudentForm"
MasterPageFile="~/University.Master"%>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
runat="server">
</asp:Content>
24. WEB-. . Table. Table HTML StudentForm. . Label. Label , . GridView.
StudentForm :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="StudentForm.aspx.cs" Inherits="lab5.StudentForm" MasterPageFile="~/University.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("FirstName")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox1" runat="server" Width="250"
Text='<%# Bind("FirstName") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox1" runat="server"
Width="250" Text='<%# Bind("FirstName") %>' />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" "
ItemStyle-Width="250">
<ItemTemplate>
<asp:Label id="myLabel2" runat="server"
Text='<%# Bind("LastName")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox2" runat="server" Width="250"
Text='<%# Bind("LastName") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox2" runat="server"
Width="250" Text='<%# Bind("LastName") %>' />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="" ItemStyle-Width="50">
<ItemTemplate>
<asp:Label id="myLabel3" runat="server"
Text='<%# Bind("Sex")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox3" runat="server" Width="50"
Text='<%# Bind("Sex") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox3" runat="server"
Width="50" Text='<%# Bind("Sex") %>' />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" "
ItemStyle-Width="100">
<ItemTemplate>
<asp:Label id="myLabel4" runat="server"
Text='<%# Bind("Year")%>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="myTextBox4" runat="server" Width="100"
Text='<%# Bind("Year") %>'/>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="myFooterTextBox4" runat="server"
Width="100" Text='<%# Bind("Year") %>' />
</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/6.png"/>
<asp:ImageButton ID="ibDelete" runat="server"
CommandName="Delete" Text="Delete"
ImageUrl="~/img/3.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/2.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 width="100" 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>
<asp:TextBox ID="emptyYearTextBox" runat="server"
Width="100"/>
</td>
<td align="center">
<asp:ImageButton ID="emptyImageButton" runat="server"
ImageUrl="~/img/2.png"
OnClick="ibInsertInEmpty_Click"/>
</td>
</tr>
</table>
</EmptyDataTemplate>
<PagerStyle HorizontalAlign ="Center" />
</asp:GridView>
</td>
</tr>
</table>
</asp:Content>
, , , .
25. , . C# StudentForm. . Page_Prerender. :
protected void Page_Prerender(object sender, EventArgs e)
{
string keyGroup = (string)Session["keyGroupName"];
Label5.Text = keyGroup;
ISession session = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(session);
IGroupDAO groupDAO = factory.getGroupDAO();
IList<Student> students = groupDAO.getAllStudentOfGroup(keyGroup);
GridView1.DataSource = students;
GridView1.DataBind();
}
26. . , :
protected void ibInsert_Click(object sender, EventArgs e)
{
string keyGroup = (string)Session["keyGroupName"];
//
string s1 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox1")).Text;
string s2 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox2")).Text;
string s3 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox3")).Text;
string s4 =
((TextBox)GridView1.FooterRow.FindControl("MyFooterTextBox4")).Text;
//
ISession session = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(session);
IGroupDAO groupDAO = factory.getGroupDAO();
Group group = groupDAO.getGroupByName(keyGroup);
IStudentDAO studentDAO = factory.getStudentDAO();
//
Student student = new Student();
student.FirstName = s1;
student.LastName = s2;
student.Sex = s3[0];
student.Year = Convert.ToInt32(s4);
student.Group = group;
group.StudentList.Add(student);
//
studentDAO.SaveOrUpdate(student);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
protected void ibInsertInEmpty_Click(object sender, EventArgs e)
{
string keyGroup = (string)Session["keyGroupName"];
//
var parent = ((Control)sender).Parent;
var firstNameTextBox = parent
.FindControl("emptyFirstNameTextBox") as TextBox;
var lastNameTextBox = parent
.FindControl("emptyLastNameTextBox") as TextBox;
var sexTextBox = parent.FindControl("emptySexTextBox") as TextBox;
var yearTextBox = parent.FindControl("emptyYearTextBox") as TextBox;
//
ISession session = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(session);
IGroupDAO groupDAO = factory.getGroupDAO();
Group group = groupDAO.getGroupByName(keyGroup);
IStudentDAO studentDAO = factory.getStudentDAO();
//
Student student = new Student();
student.FirstName = firstNameTextBox.Text;
student.LastName = lastNameTextBox.Text;
student.Sex = sexTextBox.Text[0];
student.Year = Convert.ToInt32(yearTextBox.Text);
student.Group = group;
group.StudentList.Add(student);
//
studentDAO.SaveOrUpdate(student);
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
27. . :
//
protected void GridView1_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
string keyGroup = (string)Session["keyGroupName"];
//
int index = e.RowIndex;
GridViewRow row = GridView1.Rows[index];
//
string firstName = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
string lastName = ((Label)(row.Cells[1].FindControl("myLabel2"))).Text;
ISession hbmSession = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(hbmSession);
IStudentDAO studentDAO = factory.getStudentDAO();
Student student =
studentDAO.getStudentByGroupFirstNameAndLastName(keyGroup, firstName,
lastName);
//
if (student!= null)
{
student.Group.StudentList.Remove(student);
studentDAO.Delete(student);
}
Response.Redirect(HttpContext.Current.Request.Url.ToString());
}
28. , , , , :
//
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//
int index = e.NewEditIndex;
GridViewRow row = GridView1.Rows[index];
// GridView
string oldFirstName = ((Label)(row.Cells[0].FindControl("myLabel1"))).Text;
string oldLastName = ((Label)(row.Cells[1].FindControl("myLabel2"))).Text;
// ViewState
ViewState["oldFirstName"] = oldFirstName;
ViewState["oldLastName"] = oldLastName;
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 keyGroup = (string)Session["keyGroupName"];
int index = e.RowIndex;
GridViewRow row = GridView1.Rows[index];
string newFirstName =
((TextBox)(row.Cells[0].FindControl("myTextBox1"))).Text;
string newLastName =
((TextBox)(row.Cells[1].FindControl("myTextBox2"))).Text;
string newSex = ((TextBox)(row.Cells[2].FindControl("myTextBox3"))).Text;
string newYear = ((TextBox)(row.Cells[2].FindControl("myTextBox4"))).Text;
string oldFirstName = (string)ViewState["oldFirstName"];
string oldLastName = (string)ViewState["oldLastName"];
// DAO
ISession hbmSession = (ISession)Session["hbmsession"];
DAOFactory factory = new NHibernateDAOFactory(hbmSession);
IStudentDAO studentDAO = factory.getStudentDAO();
//
Student student =
studentDAO.getStudentByGroupFirstNameAndLastName(keyGroup, oldFirstName,
oldLastName);
student.FirstName = newFirstName;
student.LastName = newLastName;
student.Sex = newSex[0];
student.Year = Convert.ToInt32(newYear);
studentDAO.SaveOrUpdate(student);
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
29. GridView :
protected void GridView1_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.EditIndex = -1;
GridView1.ShowFooter = true;
GridView1.DataBind();
}
5.6.
5.6 WEB-
WEB-, , 5.1. . .
5.1
(, ) | |
(, ) | |
(, ) | |
(, ) | |
(, ) | |
(, ) | |
(, ) | |
(, ) | |
(, ) |
- ;
- ;
- ;
- ;
- ( , );
- .
1. ?
2. ?
3. ASP.NET?
4. ?
5. ?
6 6
. Unit Testing Framework Microsoft.