ASP.NET Tutorial/ASP.net Controls/DataList
Содержание
Bind Data in Access to ASP:DataList (VB.net)
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
sub Page_Load(Sender as Object, e as EventArgs)
dim objConn as new OleDbConnection( _
"PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
& "DATA SOURCE=" _
& Server.MapPath("EmployeeDatabase.mdb;"))
dim objCmd as OleDbDataAdapter = new OleDbDataAdapter("select * from employee", objConn)
dim ds as DataSet = new DataSet()
objCmd.Fill(ds, "employee")
MyDataList.DataSource = ds.Tables("employee").DefaultView
MyDataList.DataBind()
end sub
</script>
<html><body>
<ASP:DataList id="MyDataList" RepeatColumns="2"
RepeatDirection="Vertical" runat="server">
<ItemTemplate>
<div style="padding:15,15,15,15;font-size:10pt;
font-family:Verdana">
<div style="font:12pt verdana;color:darkred">
<i><b><%# DataBinder.Eval(Container.DataItem, "FirstName")%>
<%# DataBinder.Eval(Container.DataItem, "LastName")%>
</i></b>
</div>
<br>
<b>ID: </b><%# DataBinder.Eval(Container.DataItem, _
"ID") %><br>
</div>
</ItemTemplate>
</ASP:DataList>
</body></html>
Set SelectedItemStyle, SelectedItemTemplate, ItemTemplate for asp:DataList (VB.net)
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load(Sender as Object, e as EventArgs)
"set up connection
dim myConnection as new OleDbConnection( _
"PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
& "DATA SOURCE=" _
& Server.MapPath("EmployeeDatabase.mdb;"))
"open connection
dim myCommand as new OleDbDataAdapter _
("select * from employee", myConnection)
"fill dataset
dim ds as DataSet = new DataSet()
myCommand.Fill(ds, "employee")
"select data view and bind to server control
DataList1.DataSource = ds.Tables("employee").DefaultView
DataBind()
end sub
sub DataList1_ItemCommand(Sender as object, e as _
DataListCommandEventArgs)
DataList1.SelectedIndex = e.Item.ItemIndex
DataList1.DataBind()
end sub
</script>
<html><body>
<form runat="server">
<asp:DataList id="DataList1" runat="server"
SelectedItemStyle-BackColor="#cccc99"
repeatlayout="table"
repeatdirection="horizontal"
OnItemCommand="DataList1_ItemCommand"
DataKeyField="ID">
<ItemTemplate>
<asp:LinkButton id="button1" runat="server"
Text="<%# Container.DataItem("FirstName") & " " & _
Container.DataItem("LastName") %>"
Command="select" />
</ItemTemplate>
<SelectedItemTemplate>
<%# Container.DataItem("FirstName") & " " & _
Container.DataItem("LastName") %><br>
ID:
<%# Container.DataItem("ID") %>
<br>
</SelectedItemTemplate>
</asp:DataList>
</form>
</body></html>
Table Data Binding
<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
DataSet myDataSet = new DataSet();
void Page_Load(object sender, EventArgs e)
{
string ConnectionString = Convert.ToString(ConfigurationSettings.AppSettings["MSDEConnectString"]);
string CommandText = "SELECT * FROM Book";
SqlConnection myConnection = new SqlConnection(ConnectionString);
SqlCommand myCommand = new SqlCommand(CommandText, myConnection);
SqlDataAdapter myAdapter = new SqlDataAdapter();
myAdapter.SelectCommand = myCommand;
try {
myConnection.Open();
myAdapter.Fill(myDataSet);
} catch (Exception ex) {
throw (ex);
} finally {
myConnection.Close();
}
DataGrid1.DataSource = myDataSet;
DataGrid1.DataBind();
DataList1.DataSource = myDataSet;
DataList1.DataBind();
Repeater1.DataSource = myDataSet;
Repeater1.DataBind();
}
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Label id="Label1" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookID") %>"></asp:Label> <asp:Label id="Label2" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookTitle")%>"></asp:Label> <asp:Label id="Label3" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookPublisherID")%>"></asp:Label> <asp:Label id="Label4" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookMainTopic") %>"></asp:Label>
</ItemTemplate>
<HeaderTemplate>
Books
</HeaderTemplate>
</asp:DataList>
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<asp:Label id="Label5" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookID") %>"></asp:Label>
<asp:Label id="Label6" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookTitle")%>"></asp:Label>
<asp:Label id="Label7" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookPublisherID")%>"></asp:Label>
<asp:Label id="Label8" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "BookMainTopic") %>"></asp:Label>
</ItemTemplate>
<HeaderTemplate>
Books
</HeaderTemplate>
</asp:Repeater>
</form>
</body>
</html>
File: Web.config
<configuration>
<appSettings>
<add key="MSDEConnectString" value="server=(local)\YourDatabase;database=Books;uid=YourID;pwd=letmein;" />
</appSettings>
</configuration>
Use OnItemCommand, OnEditCommand, OnCancelCommand, OnUpdateCommand, OnDeleteCommand for asp:DataList (VB.net)
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
sub Page_Load(Sender as Object, e as EventArgs)
dim myConnection as new OleDbConnection( _
"PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
& "DATA SOURCE=" _
& Server.MapPath("EmployeeDatabase.mdb;"))
dim myCommand as new OleDbDataAdapter("select * from employee", myConnection)
dim ds as DataSet = new DataSet()
myCommand.Fill(ds, "employee")
DataList1.DataSource = ds.Tables("employee").DefaultView
DataBind()
end sub
sub DataList1_ItemCommand(Sender as object, e as DataListCommandEventArgs)
DataList1.SelectedIndex = e.Item.ItemIndex
DataList1.DataBind()
end sub
sub DataList1_EditCommand(Sender as object, e as DataListCommandEventArgs)
DataList1.EditItemIndex = e.Item.ItemIndex
DataList1.DataBind()
end sub
sub DataList1_CancelCommand(Sender as object, e as DataListCommandEventArgs)
DataList1.EditItemIndex = -1
DataList1.DataBind()
end sub
sub DataList1_UpdateCommand(Sender as object, e as DataListCommandEventArgs)
DataList1.DataBind()
end sub
sub DataList1_DeleteCommand(Sender as object, e as DataListCommandEventArgs)
DataList1.DataBind()
end sub
</script>
<html><body>
<form runat="server">
<asp:DataList id="DataList1" runat="server"
SelectedItemStyle-BackColor="#cccc99"
repeatlayout="table"
repeatdirection="horizontal"
OnItemCommand="DataList1_ItemCommand"
OnEditCommand="DataList1_EditCommand"
OnCancelCommand="DataList1_CancelCommand"
OnUpdateCommand="DataList1_UpdateCommand"
OnDeleteCommand="DataList1_DeleteCommand"
DataKeyField="ID">
<ItemTemplate>
<asp:LinkButton id="button1" runat="server"
Text="<%# Container.DataItem("FirstName") & " " & _
Container.DataItem("LastName") %>"
CommandName="Edit" />
</ItemTemplate>
<SelectedItemTemplate>
<%# Container.DataItem("FirstName") & " " & _
Container.DataItem("LastName") %><br>
ID:
<%# Container.DataItem("ID") %>
<br>
</SelectedItemTemplate>
<EditItemTemplate>
<asp:LinkButton id="lbtCancel" runat="server"
CommandName="Cancel"
Text="Cancel" />
<asp:LinkButton id="lbtUpdate" runat="server"
CommandName="Update"
Text="Update" />
<asp:LinkButton id="lbtDelete" runat="server"
CommandName="Delete"
Text="Delete" />
</EditItemTemplate>
</asp:DataList>
</form>
</body></html>