
 
 | 
| 技术资料  > .Net专区 > Asp.Net开发 : Asp.net中用核选框显示数据的方法及ButtonColumn的使?/td> |  
Asp.net中用核选框显示数据的方法及ButtonColumn的使?/H1> March 25,2004 |  
<%@ Import Namespace="System.Data" %> 
 
<html> 
<script language="C#" runat="server"> 
 
    DataTable Cart; 
    DataView CartView; 
 
    ICollection CreateDataSource() { 
        DataTable dt = new DataTable(); 
        DataRow dr; 
 
        dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); 
        dt.Columns.Add(new DataColumn("StringValue", typeof(string))); 
        dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime))); 
        dt.Columns.Add(new DataColumn("BoolValue", typeof(bool))); 
        dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); 
 
        for (int i = 0; i < 9; i++) { 
            dr = dt.NewRow(); 
            dr[0] = i; 
            dr[1] = "Item " + i.ToString(); 
            dr[2] = DateTime.Now; 
            dr[3] = (i % 2 != 0) ? true : false; 
            dr[4] = 1.23 * (i+1); 
 
            dt.Rows.Add(dr); 
        } 
 
        DataView dv = new DataView(dt); 
        return dv; 
    } 
 
    void Page_Load(Object sender, EventArgs e) 
    { 
        if (Session["DG5_ShoppingCart"] == null) { 
            Cart = new DataTable(); 
            Cart.Columns.Add(new DataColumn("Item", typeof(string))); 
            Cart.Columns.Add(new DataColumn("Price", typeof(string))); 
            Session["DG5_ShoppingCart"] = Cart; 
        } 
        else { 
            Cart = (DataTable)Session["DG5_ShoppingCart"]; 
        }     
        CartView = new DataView(Cart); 
        ShoppingCart.DataSource = CartView; 
        CartView.Sort="Item"; 
        ShoppingCart.DataBind(); 
 
        MyDataGrid.DataSource = CreateDataSource(); 
        MyDataGrid.DataBind(); 
    } 
 
    void Grid_CartCommand(object sender, DataGridCommandEventArgs e) { 
     
        DataRow dr = Cart.NewRow(); 
         
        // e.Item is the row of the table where the command fired 
        // For bound columns the value is stored in the Text property of TableCell 
        TableCell itemCell = e.Item.Cells[1]; 
        TableCell priceCell = e.Item.Cells[2]; 
        string item = itemCell.Text; 
        string price = priceCell.Text; 
         
        if (((LinkButton)e.CommandSource).CommandName == "AddToCart") { 
            dr[0] = item; 
            dr[1] = price; 
            Cart.Rows.Add(dr); 
        } 
        else {   //Remove from Cart 
         
            CartView.RowFilter = "Item='"+item+"'"; 
            if (CartView.Count > 0) {     
                CartView.Delete(0); 
            } 
            CartView.RowFilter = ""; 
        } 
        ShoppingCart.DataBind(); 
 
    } 
 
 
</script> 
 
<body> 
 
    <h3><font face="Verdana">Using a Template Column in DataGrid</font></h3> 
 
    <form runat=server> 
 
    <table cellpadding="5"> 
    <tr valign="top"> 
    <td> 
 
    <b>Product List</b> 
    <asp:DataGrid id="MyDataGrid" runat="server" 
        BorderColor="black" 
        BorderWidth="1" 
        GridLines="Both" 
        CellPadding="3" 
        CellSpacing="0" 
        Font-Name="Verdana" 
        Font-Size="8pt" 
        HeaderStyle-BackColor="#aaaadd" 
        AutoGenerateColumns="false" 
        OnItemCommand="Grid_CartCommand" 
        > 
        <Columns> 
            <asp:TemplateColumn HeaderText="Add/Remove"> 
                <ItemTemplate> 
                    <asp:LinkButton ID=AddButton Text="Add" CommandName="AddToCart" ForeColor="blue" runat="server" />  
                    <asp:LinkButton ID=RemoveButton Text="Remove" CommandName="RemoveFromCart" ForeColor="blue" runat="server" /> 
                </ItemTemplate> 
            </asp:TemplateColumn> 
             
            <asp:BoundColumn HeaderText="Item" DataField="StringValue"/> 
            <asp:BoundColumn HeaderText="Price" DataField="CurrencyValue" DataFormatString="{0:c}" ItemStyle-HorizontalAlign="right" /> 
             
            <asp:TemplateColumn HeaderText="Assembly required?"> 
                <ItemTemplate> 
                    <asp:CheckBox ID=Chk1 Checked='<%# DataBinder.Eval(Container.DataItem, "BoolValue") %>' Enabled="false" runat="server" /> 
                </ItemTemplate> 
            </asp:TemplateColumn> 
        </Columns> 
    </asp:DataGrid> 
 
    </td><td> 
 
    <b>Shopping Cart</b> 
    <asp:DataGrid id="ShoppingCart" runat="server" 
        BorderColor="black" 
        BorderWidth="1" 
        CellPadding="3" 
        Font-Name="Verdana" 
        Font-Size="8pt" 
        HeaderStyle-BackColor="#aaaadd" 
        /> 
 
    </td> 
    </tr> 
    </table> 
 
  </form> 
 
</body> 
</html> 
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved