objectdatasource with control parameter
<%@ 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);
}
public Person SelectPerson(int id) {
return this.SelectPersons().FindPersonById(id);
}
}
</script>
<html>
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form runat="server">
ID: <asp:textbox id="TextBox1" runat="server">0</asp:textbox>
<asp:button id="Button1" runat="server" text="Show Person" />
<asp:detailsview id="DetailsView1" runat="server" datasourceid="ObjectDataSource1">
</asp:detailsview>
<asp:objectdatasource id="ObjectDataSource1"
runat="server"
typename="PersonManager"
selectmethod="SelectPerson">
<selectparameters>
<asp:controlparameter name="id"
propertyname="Text"
type="Int32"
controlid="TextBox1">
</asp:controlparameter>
</selectparameters>
</asp:objectdatasource>
</form>
</body>
</html>
Related examples in the same category