ObjectDataSource with selectmethod, deletemethod, updatemethod, insertmethod
<%@ page language="C#" %>
<%@ import namespace="System" %>
<%@ import namespace="System.Web" %>
<%@ import namespace="System.Collections.Generic" %>
<script runat="server" language="c#">
public class Person {
private int id;
private string firstname;
private string lastname;
public Person(int id, string firstname, string lastname) {
this.id = id;
this.firstname = firstname;
this.lastname = lastname;
}
public int Id {
get { return this.id; }
set { this.id = value; }
}
public string Firstname {
get { return this.firstname; }
set { this.firstname = value; }
}
public string Lastname {
get { return this.lastname; }
set { this.lastname = value; }
}
}
public class PersonManager {
private const string personsKey = "persons";
public PersonCollection SelectPersons() {
HttpContext context = HttpContext.Current;
if (context.Application[personsKey] == null) {
PersonCollection persons = new PersonCollection();
persons.Add(new Person(0, "A", "B"));
persons.Add(new Person(1, "C", "D"));
persons.Add(new Person(2, "E", "F"));
context.Application[personsKey] = persons;
}
return (context.Application[personsKey] as PersonCollection);
}
public Person SelectPerson(int id) {
return this.SelectPersons().FindPersonById(id);
}
public void DeletePerson(int Id) {
HttpContext context = HttpContext.Current;
PersonCollection persons = (context.Application[personsKey] as PersonCollection);
persons.Remove(Id);
}
public void Update(int Id, string Firstname, string Lastname) {
HttpContext context = HttpContext.Current;
PersonCollection persons = (context.Application[personsKey] as PersonCollection);
Person person = persons.FindPersonById(Id);
if (person != null) {
person.Firstname = Firstname;
person.Lastname = Lastname;
}
}
public void Insert(int Id, string Firstname, string Lastname) {
HttpContext context = HttpContext.Current;
PersonCollection persons = (context.Application[personsKey] as PersonCollection);
persons.Add(new Person(Id, Firstname, Lastname));
}
}
public class PersonCollection : List<Person> {
public void Remove(int id) {
Person person = this.FindPersonById(id);
if (person != null) {
base.Remove(person);
}
}
public Person FindPersonById(int id) {
foreach (Person person in this) {
if (person.Id.Equals(id)) {
return person;
}
}
return null;
}
}
</script>
<html>
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:gridview id="GridView1"
runat="server"
allowpaging="True"
datasourceid="ObjectDataSource1"
allowsorting="True"
datakeynames="Id"
autogeneratecolumns="False">
<alternatingrowstyle font-italic="False" font-bold="False">
</alternatingrowstyle>
<pagerstyle forecolor="#003399"
font-italic="False"
font-bold="False"
horizontalalign="Left"
backcolor="#99CCCC">
</pagerstyle>
<columnfields>
<asp:boundfield datafield="Id" readonly="True">
</asp:boundfield>
<asp:boundfield datafield="Firstname">
</asp:boundfield>
<asp:boundfield datafield="Lastname">
</asp:boundfield>
<asp:commandfield showselectbutton="True"
showdeletebutton="True"
showeditbutton="True">
</asp:commandfield>
</columnfields>
<summarytitlestyle borderwidth="1px"
borderstyle="None"
bordercolor="#3366CC"
backcolor="White">
</summarytitlestyle>
<selectedrowstyle forecolor="#CCFF99"
backcolor="#009999"
font-italic="False"
font-bold="True">
</selectedrowstyle>
<detailtitlestyle borderwidth="1px"
borderstyle="None"
bordercolor="#3366CC"
backcolor="White">
</detailtitlestyle>
<rowstyle forecolor="#003399" backcolor="White" font-italic="False" font-bold="False">
</rowstyle>
<headerstyle forecolor="#CCCCFF" backcolor="#003399" font-italic="False" font-bold="True">
</headerstyle>
<footerstyle forecolor="#003399" backcolor="#99CCCC" font-italic="False" font-bold="False">
</footerstyle>
</asp:gridview>
<asp:objectdatasource id="ObjectDataSource1" runat="server" typename="PersonManager"
selectmethod="SelectPersons"
deletemethod="DeletePerson"
updatemethod="Update"
insertmethod="Insert">
<insertparameters>
<asp:parameter name="Id" type="Int32">
</asp:parameter>
</insertparameters>
</asp:objectdatasource>
<asp:detailsview id="DetailsView1" runat="server" datasourceid="ObjectDataSource1"
defaultmode="Insert" autogeneraterows="False" datakeynames="Id">
<rowfields>
<asp:boundfield datafield="Id" headertext="ID:">
</asp:boundfield>
<asp:boundfield datafield="Firstname" headertext="Fn:">
</asp:boundfield>
<asp:boundfield datafield="Lastname" headertext="Ln:">
</asp:boundfield>
<asp:commandfield showinsertbutton="True">
</asp:commandfield>
</rowfields>
</asp:detailsview>
</form>
</body>
</html>
Related examples in the same category