ASP.NET Tutorial/ASP.net Controls/DataGrid
Содержание
- 1 asp:EditCommandColumn in asp:DataGrid (VB.net)
- 2 Bind data of directories to asp:DataGrid (VB.net)
- 3 Bind file information to asp:DataGrid (VB.net)
- 4 Binding DataReader to DataGrid
- 5 DataGrid Data Binding
- 6 Use asp:DataGrid to edit data in an Access table (VB.net)
- 7 Use asp:HyperlinkColumn and asp:ButtonColumn in asp:DataGrid (VB.net)
asp:EditCommandColumn in asp:DataGrid (VB.net)
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="VB" 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")
DataGrid1.DataSource = ds
DataGrid1.DataMember = "employee"
DataBind()
end sub
sub DataGrid1_Edit(Sender as Object, e as DataGridCommandEventArgs)
DataGrid1.EditItemIndex = e.Item.ItemIndex
DataGrid1.DataBind()
end sub
sub DataGrid1_Update(Sender as Object, e as DataGridCommandEventArgs)
DataGrid1.DataBind()
end sub
sub DataGrid1_Cancel(Sender as Object, e as DataGridCommandEventArgs)
DataGrid1.EditItemIndex = -1
DataGrid1.DataBind()
end sub
sub DataGrid1_SortCommand(Sender as Object, e as DataGridSortCommandEventArgs)
DataGrid1.DataBind()
End Sub
sub DataGrid1_PageIndexChanged(Sender as Object, e as DataGridPageChangedEventArgs)
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
end sub
</script>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server"
BorderColor="black"
GridLines="Vertical"
cellpadding="4"
cellspacing="0"
width="450"
Font-NameFont-Names="Arial"
Font-Size="8pt"
ShowFooter="True"
HeaderStyle-BackColor="#cccc99"
FooterStyle-BackColor="#cccc99"
ItemStyle-BackColor="#ffffff"
AlternatingItemStyle-Backcolor="#cccccc"
AutoGenerateColumns="false"
AllowSorting=true
OnEditCommand="DataGrid1_Edit"
OnCancelCommand="DataGrid1_Cancel"
OnUpdateCommand="DataGrid1_Update"
AllowPaging="True"
PageSize=2
PagerStyle-Mode=NumericPages
PagerStyle-PageButtonCount = 2
OnPageIndexChanged="DataGrid1_PageIndexChanged" >
<Columns>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:Label id="Name" runat="server"
Text="<%# Container.DataItem("FirstName")& _
" " & Container.DataItem("LastName") %>"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="ID" DataField="ID"/>
<asp:EditCommandColumn
EditText="Edit"
CancelText="Cancel"
UpdateText="Update"
ItemStyle-Wrap="false"
HeaderText="Edit" />
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
Bind data of directories to asp:DataGrid (VB.net)
<%@ Import Namespace="System.IO" %>
<script language="C#" runat="server">
void Page_Load(Object Sender, EventArgs e) {
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("."));
DataGrid2.DataSource = dir.GetDirectories();
DataGrid2.DataBind();
}
</script>
<html><body>
<b>Directory information</b><br>
<asp:DataGrid id="DataGrid2" runat="server"
AlternatingItemStyle-Backcolor="#cccccc"
AutogenerateColumns="true" />
</body></html>
Bind file information to asp:DataGrid (VB.net)
<%@ Import Namespace="System.IO" %>
<script language="C#" runat="server">
void Page_Load(Object Sender, EventArgs e) {
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("."));
DataGrid1.DataSource = dir.GetFiles("*.*");
DataGrid1.DataBind();
}
</script>
<html><body>
<b>File information</b><br>
<asp:DataGrid id="DataGrid1" runat="server"
AlternatingItemStyle-Backcolor="#cccccc"
AutogenerateColumns="true" />
</body></html>
Binding DataReader to DataGrid
<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
SqlDataReader myReader;
void Page_Load(object sender, EventArgs e)
{
string ConnectionString = Convert.ToString(ConfigurationSettings.AppSettings["MSDEConnectString"]);
SqlConnection myConnection = new SqlConnection(ConnectionString);
SqlCommand myCommand = new SqlCommand();
myCommand.Connection = myConnection;
try {
myConnection.Open();
if (!(Page.IsPostBack)) {
myCommand.rumandText = "SELECT PublisherID, PublisherName FROM Publisher";
myReader = myCommand.ExecuteReader();
ListBox1.DataBind();
myReader.Close();
} else {
myCommand.rumandText = "SELECT * FROM Book WHERE BookPublisherID=" + ListBox1.SelectedItem.Value;
myReader = myCommand.ExecuteReader();
DataGrid1.DataSource = myReader;
DataGrid1.DataBind();
myReader.Close();
}
} catch (Exception ex) {
throw (ex);
} finally {
myConnection.Close();
}
}
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<h2>A RadioButtonList
</h2>
<asp:RadioButtonList id="RadioButtonList1" runat="server" AutoPostBack="True" DataValueField="PublisherID" DataTextField="PublisherName" DataSource="<%# myReader %>"></asp:RadioButtonList>
<h2>A DropDownList
</h2>
<asp:DropDownList id="DropDownList1" runat="server" AutoPostBack="True" DataValueField="PublisherID" DataTextField="PublisherName" DataSource="<%# myReader %>"></asp:DropDownList>
<h2>A ListBox
</h2>
<asp:ListBox id="ListBox1" runat="server" AutoPostBack="True" DataValueField="PublisherID" DataTextField="PublisherName" DataSource="<%# myReader %>" Rows="5"></asp:ListBox>
<asp:Label id="Label1" runat="server"></asp:Label>
<asp:DataGrid id="DataGrid1" runat="server" HorizontalAlign="Justify" BorderColor="#CC9966" BackColor="White" CellPadding="4" BorderWidth="1px" BorderStyle="None">
<FooterStyle forecolor="#330099" backcolor="#FFFFCC"></FooterStyle>
<HeaderStyle font-bold="True" forecolor="#FFFFCC" backcolor="#990000"></HeaderStyle>
<PagerStyle horizontalalign="Center" forecolor="#330099" backcolor="#FFFFCC"></PagerStyle>
<SelectedItemStyle font-bold="True" forecolor="#663399" backcolor="#FFCC66"></SelectedItemStyle>
<ItemStyle forecolor="#330099" backcolor="White"></ItemStyle>
</asp:DataGrid>
</form>
</body>
</html>
File: Web.config
<configuration>
<appSettings>
<add key="MSDEConnectString" value="server=(local)\YourDatabase;database=Books;uid=YourID;pwd=letmein;" />
</appSettings>
</configuration>
DataGrid Data Binding
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
"declare connection
dim Conn as new OleDbConnection( _
"PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
& "DATA SOURCE=" _
& Server.MapPath("EmployeeDatabase.mdb;"))
sub GetData(Sender as Object, e as EventArgs)
dim objCmd as OleDbCommand = new OleDbCommand _
("select * from employee where ID = @ID", Conn)
dim objReader as OleDbDataReader
dim objParam as OleDbParameter
objParam = objCmd.Parameters.Add("@ID", OleDbType.Integer)
objParam.Direction = ParameterDirection.Input
objParam.Value = tbID.Text
try
objCmd.Connection.Open()
objReader = objCmd.ExecuteReader
dgData.DataSource = objReader
dgData.DataBind()
objReader.Close
objCmd.Connection.Close()
catch objEx as FormatException
lblMessage.Text = objEx.Message
catch objEx as OleDbException
lblMessage.Text = "Database error!"
catch objEx as Exception
lblMessage.Text = "Unknown error!"
end try
end sub
</script>
<html><body>
<form runat="server">
<asp:Label id="lblMessage" runat="server"
maintainstate=false /><br>
Enter an ID: <asp:TextBox id="tbID" runat="server"
AutoPostBack=True
OnTextChanged=GetData />
<asp:DataGrid id="dgData" runat="server"
BorderColor="black"
GridLines="Vertical"
width="100%"
Font-Name="Arial"
Font-Size="8pt"
HeaderStyle-BackColor="#cccc99"
ItemStyle-BackColor="#ffffff"
AlternatingItemStyle-Backcolor="#cccccc"
AutoGenerateColumns="true" />
</form>
</body></html>
Use asp:DataGrid to edit data in an Access table (VB.net)
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="VB" 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")
DataGrid1.DataSource = ds.Tables("employee").DefaultView
DataBind()
end sub
sub DataGrid1_ItemCommand(obj as object, e as _
DataGridCommandEventArgs)
DataGrid1.SelectedIndex = e.Item.ItemIndex
DataBind()
end sub
</script>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server"
BorderColor="black"
GridLines="Vertical"
cellpadding="4"
cellspacing="0"
width="450"
Font-NameFont-Names="Arial"
Font-Size="8pt"
ShowFooter="True"
HeaderStyle-BackColor="#cccc99"
FooterStyle-BackColor="#cccc99"
ItemStyle-BackColor="#ffffff"
AlternatingItemStyle-Backcolor="#cccccc"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:Label id="Name" runat="server"
Text="<%# Container.DataItem("FirstName")& _
" " & Container.DataItem("LastName") %>"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="ID" DataField="ID"/>
<asp:HyperlinkColumn HeaderText="Edit" text="Edit" NavigateURL="edit.aspx"/>
<asp:ButtonColumn HeaderText="Delete?" text="X" CommandName="delete" ButtonType="PushButton"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
Use asp:HyperlinkColumn and asp:ButtonColumn in asp:DataGrid (VB.net)
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="VB" 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")
DataGrid1.DataSource = ds.Tables("employee").DefaultView
DataBind()
end sub
sub DataGrid1_ItemCommand(obj as object, e as _
DataGridCommandEventArgs)
DataGrid1.SelectedIndex = e.Item.ItemIndex
DataBind()
end sub
</script>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server"
BorderColor="black"
GridLines="Vertical"
cellpadding="4"
cellspacing="0"
width="450"
Font-NameFont-Names="Arial"
Font-Size="8pt"
ShowFooter="True"
HeaderStyle-BackColor="#cccc99"
FooterStyle-BackColor="#cccc99"
ItemStyle-BackColor="#ffffff"
AlternatingItemStyle-Backcolor="#cccccc"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:Label id="Name" runat="server"
Text="<%# Container.DataItem("FirstName")& _
" " & Container.DataItem("LastName") %>"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="ID" DataField="ID"/>
<asp:HyperlinkColumn HeaderText="Edit" text="Edit" NavigateURL="edit.aspx"/>
<asp:ButtonColumn HeaderText="Delete?" text="X" CommandName="delete" ButtonType="PushButton"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>