把DataList1的AutoPostBack属性设为true
DataList1.DataSource = ds;
this.category.DataTextField = "要显示的列名";
DataList1.DataValueField = "id";
String lsid = Convert.ToInt32( this.DataList1.SelectedValue );
DataList1.DataBind();

解决方案 »

  1.   

    <%@ Page language="c#" Inherits="MasterDetail.CustomerOrderDataGrid" EnableViewState="False" %>
    <HTML>
    <body style="font: x-small Verdana, Arial, sans-serif;">
    <!-- Begin Web Form -->
    <form id="CustomerOrderDataGrid" method="post" runat="server">
      <p><a href="/DayOfDotNet/">Parent Directory</a></p>  <!-- Begin DataGrid -->
      <asp:DataGrid id="CustomerDataGrid" runat="server" 
        AutoGenerateColumns="False" 
        CellPadding="2" CellSpacing="0" 
        Font-Names="Verdana, Arial, sans-serif" 
        BorderColor="Black" BorderWidth="1" 
        GridLines="Horizontal" 
        OnItemDataBound="CustomerDataGrid_OnItemDataBound">    <HeaderStyle 
          Font-Bold="True" Font-Size="small" 
          Font-Name="Arial" 
          BackColor="Maroon" ForeColor="White" />    <ItemStyle Font-Size="x-small" />    <AlternatingItemStyle BackColor="Tan" />    <Columns>      <asp:HyperLinkColumn
            DataTextField="CustomerID"
            DataNavigateUrlField="CustomerID"
            DataNavigateUrlFormatString="OrderDetailDataGrid.aspx?customerid={0}"
            HeaderText="ID"
            ItemStyle-VerticalAlign="Top" />      <asp:TemplateColumn ItemStyle-VerticalAlign="Top" HeaderText="Customer">
            <ItemTemplate>
              <b><%# DataBinder.Eval(Container.DataItem, "CompanyName") %></b><br>
              <%# DataBinder.Eval(Container.DataItem, "Address" ) %><br>
              <%# DataBinder.Eval(Container.DataItem, "City" ) %>,
              <%# DataBinder.Eval(Container.DataItem, "Region") %>
              <%# DataBinder.Eval(Container.DataItem, "PostalCode" ) %><br>
              <br>
              <%# DataBinder.Eval(Container.DataItem, "ContactName" ) %><br>
              <%# DataBinder.Eval(Container.DataItem, "ContactTitle" ) %><br>
              <%# DataBinder.Eval(Container.DataItem, "Phone" ) %>
            </ItemTemplate>
          </asp:TemplateColumn>      <asp:TemplateColumn 
            ItemStyle-VerticalAlign="Top" 
            HeaderText="Orders" 
            ItemStyle-Width="100%">        <ItemTemplate>          <asp:DataGrid runat="server" 
                AutogenerateColumns="False" 
                Width="100%" 
                GridLines="Horizontal" 
                BorderColor="Black" 
                BorderWidth="1" 
                Font-Name="Verdana" 
                Font-Size="x-small" 
                DataSource='<%# getOrdersDataSource( (string)DataBinder.Eval(Container.DataItem, "CustomerID") ) %>'>            <HeaderStyle 
                  BackColor="Black" 
                  ForeColor="White" 
                  Font-Bold="True" />            <ItemStyle BackColor="White" />            <AlternatingItemStyle BackColor="Silver" />            <Columns>
                  <asp:BoundColumn DataField="OrderID" HeaderText="Order ID" />
                    <asp:TemplateColumn>
                      <ItemTemplate>
                        <b>Order Date: </b>
                        <%# DataBinder.Eval(Container.DataItem, "OrderDate", "{0:D}" ) %>
                        <br>
                        <b>Shipped Date: </b>
                        <%# DataBinder.Eval(Container.DataItem, "OrderDate", "{0:D}" ) %>
                        <br>
                        <b>Required Date: </b>
                        <%# DataBinder.Eval(Container.DataItem, "OrderDate", "{0:D}" ) %>
                        <br>
                    </ItemTemplate>
                  </asp:TemplateColumn>
                </Columns>
              </asp:DataGrid>
            </ItemTemplate>
          </asp:TemplateColumn> 
        </Columns>
      </asp:DataGrid>
    <!-- End DataGrid -->
    </form>
    <!-- End Web Form -->
    </body>
    </HTML>------------------------------------------------------------------using System;
    using System.Data;
    using System.Data.SqlClient; 
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls; namespace MasterDetail
    {
      public class CustomerOrderDataGrid : System.Web.UI.Page
      {
        protected DataGrid CustomerDataGrid;
        private DataSet ds = new DataSet();
      
        private void Page_Load(object sender, System.EventArgs e)
        {
          if(!Page.IsPostBack)
          {
            BindData();
          } 
        }    private void BindData()
        {
          string sqlStmt = "SELECT * FROM Customers; SELECT * FROM Orders";
          string conString = "server=localhost;database=Northwind;uid=sa;pwd=;";
      
          SqlDataAdapter sda = new SqlDataAdapter(sqlStmt, conString);
      
          sda.Fill(ds);
          ds.Tables[0].TableName = "Customers";
          ds.Tables[1].TableName = "Orders";
      
          CustomerDataGrid.DataSource = ds.Tables["Customers"];
          CustomerDataGrid.DataBind();
        }    protected DataView getOrdersDataSource(string _customerID)
        { 
          DataView _orders = ds.Tables["Orders"].DefaultView;
          _orders.RowFilter = "CustomerID='" + _customerID + "'";
          return _orders;
        } 
      }

     
      

  2.   

    datalist放一个
    在里边在动态ADD一个datalist
    演示
    http://aspxboy.com/forum