ASP.NET Tutorial/ASP.net Controls/DataList

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Bind Data in Access to ASP:DataList (VB.net)

   <source lang="csharp">

<%@ 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>
          <%# DataBinder.Eval(Container.DataItem, "FirstName")%>  
          <%# DataBinder.Eval(Container.DataItem, "LastName")%>
          </i>
       </div>
       
ID: <%# DataBinder.Eval(Container.DataItem, _ "ID") %>
</div> </ItemTemplate> </ASP:DataList>

</body></html></source>


Set SelectedItemStyle, SelectedItemTemplate, ItemTemplate for asp:DataList (VB.net)

   <source lang="csharp">

<%@ 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") %>
ID: <%# Container.DataItem("ID") %>
</SelectedItemTemplate> </asp:DataList>
  </form>
  

</body></html></source>


Table Data Binding

   <source lang="csharp">

<%@ 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></source>


Use OnItemCommand, OnEditCommand, OnCancelCommand, OnUpdateCommand, OnDeleteCommand for asp:DataList (VB.net)

   <source lang="csharp">

<%@ 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") %>
ID: <%# Container.DataItem("ID") %>
</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></source>