Define your own collection for ObjectDataSource
<%@ 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 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;
}
}
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);
}
}
</script>
<html>
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form runat="server">
<asp:gridview id="GridView1"
runat="server"
datasourceid="ObjectDataSource1">
<alternatingrowstyle backcolor="Red">
</alternatingrowstyle>
<pagerstyle forecolor="Black"
font-italic="False"
font-bold="False"
horizontalalign="Center"
backcolor="#999999">
</pagerstyle>
<selectedrowstyle forecolor="White"
backcolor="#008A8C"
font-italic="False"
font-bold="True">
</selectedrowstyle>
<rowstyle forecolor="Black"
backcolor="#EEEEEE"
font-italic="False"
font-bold="False">
</rowstyle>
<headerstyle forecolor="White"
backcolor="#000084"
font-italic="False"
font-bold="True">
</headerstyle>
<footerstyle forecolor="Black"
backcolor="#CCCCCC" font-italic="False" font-bold="False">
</footerstyle>
</asp:gridview>
<asp:objectdatasource id="ObjectDataSource1" runat="server" typename="PersonManager" selectmethod="SelectPersons">
</asp:objectdatasource>
</form>
</body>
</html>
Related examples in the same category