- 注册时间
- 2006-6-1
- 最后登录
- 2012-5-20
- 阅读权限
- 255
- 积分
- 3161
- 精华
- 0
- 帖子
- 3161
  
- 性别
- 男
- 听众数
- 15
- 买家信用
 - 卖家信用
 - 在线时间
- 1426 小时
- 相册
- 0
|
|
[sell=30]<br><%@ Import Namespace="System.Data" %><br><br><html><br> <br><s cript language="VB" runat="server"><br><br> Dim CartView As DataView<br> Dim runningTotal As Double = 0<br><br> 'Cart 是 Page 上的一个属性<br> ReadOnly Property Cart As DataTable<br> Get<br> Dim tmpCart As DataTable<br> Dim i As Integer<br> Dim dr As DataRow<br><br> If Session("DG_ShoppingCart") Is Nothing Then<br> tmpCart = new DataTable()<br> tmpCart.Columns.Add(new DataColumn("数量", GetType(String)))<br> tmpCart.Columns.Add(new DataColumn("产品", GetType(String)))<br> tmpCart.Columns.Add(new DataColumn("价格", GetType(Double)))<br> tmpCart.Columns.Add(new DataColumn("礼品包", GetType(Boolean)))<br> Session("DG_ShoppingCart") = tmpCart<br><br> ' 第一次加载 -- 预填充一些数据<br> For i= 1 to 6<br> dr = tmpCart.NewRow()<br> dr(0) = "1"<br> dr(1) = "产品" & i.ToString<br> dr(2) = 1.23 * (i+1)<br> dr(3) = false<br> tmpCart.Rows.Add(dr)<br> Next<br> Return tmpCart<br> Else<br> Return Session("DG_ShoppingCart")<br> End If<br> End Get<br> End Property<br><br> 'Sub Page_Init(sender As Object, e As EventArgs)<br> ' MyDataGrid.EnableViewState = true<br> 'End Sub<br><br> Sub Page_Load(sender As Object, e As EventArgs)<br> CartView = Cart.DefaultView<br> If Not IsPostBack Then<br> BindGrid<br> End If<br> End Sub<br><br> Sub BindGrid()<br> MyDataGrid.DataSource = CartView<br> MyDataGrid.DataBind()<br> End Sub<br><br> Sub btnUpdate_click(sender As Object, e As EventArgs)<br> Dim i As Integer<br> Dim _item As DataGridItem<br> Dim dr As DataRow<br><br> For i = 0 To MyDataGrid.Items.Count - 1<br><br> _item = MyDataGrid.Items(i)<br> Dim qtyTextBox As TextBox= _item.FindControl("txtQty")<br> Dim giftCheckBox As CheckBox = _item.FindControl("chkGIft")<br><br> ' 对于数据库,我们应使用一条更新命令。<br> ' 因为这是一个内存内数据表,所以我们只更改内存内的行。<br> dr = Cart.Rows(i)<br> dr(0) = qtyTextBox.Text<br> dr(3) = giftCheckBox.Checked<br> Next<br> BindGrid<br> End Sub<br><br><br> Function CalcTotal (count As Integer, price As Double) As Double<br> Dim total As Double<br><br> total = count * price<br> runningTotal += total<br><br> CalcTotal = total<br> End Function<br><br></s cript><br><br><body><br><br> <h3><font face="宋体">DataGrid 的自定义编辑</font></h3><br><br> <form runat=server><br><br> <ASP:DataGrid id="MyDataGrid" runat="server"<br> BorderColor="black"<br> BorderWidth="1"<br> GridLines="none"<br> CellPadding="4"<br> Font-Name="宋体"<br> Font-Size="8pt"<br> HeaderStyle-BackColor="#aaaadd"<br> AutoGenerateColumns="false"<br> ><br> <Columns><br> <asp:TemplateColumn HeaderText="数量"><br> <ItemTemplate><br> <asp:TextBox id=txtQty runat="server"<br> Text='<%# DataBinder.Eval(Container.DataItem, "数量") %>'<br> Width="40px"<br> /><br> </ItemTemplate><br> </asp:TemplateColumn><br> <asp:BoundColumn HeaderText="产品" DataField="产品"/><br> <asp:BoundColumn HeaderText="价格" DataField="价格" DataFormatString="{0:c}" /><br> <asp:TemplateColumn HeaderText="礼品包?"><br> <ItemTemplate><br> <center><br> <asp:CheckBox id=chkGIft runat="server"<br> Checked='<%# DataBinder.Eval(Container.DataItem, "礼品包") %>'<br> /><br> </center><br> </ItemTemplate><br> </asp:TemplateColumn><br> <asp:TemplateColumn HeaderText="小计"><br> <ItemTemplate><br> <p align="right"><br> <asp:Label runat="server"<br> Text='<%# System.String.Format("{0:c}",CalcTotal(Int32.Parse(DataBinder.Eval(Container.DataItem, "数量")),DataBinder.Eval(Container.DataItem, "价格"))) %>'<br> /><br> </p><br> </ItemTemplate><br> <FooterTemplate><br> <p align="right"><b><br> <asp:Label runat="server"<br> Text='<%# System.String.Format("{0:c}", runningTotal) %>'<br> /><br> </b></p><br> </FooterTemplate><br><br> </asp:TemplateColumn><br> </Columns><br><br> </asp:DataGrid><br><br> <asp:LinkButton id=btnUpdate runat="server"<br> Text="更新合计"<br> Font-Name="Verdana"<br> Font-Size="9pt"<br> onClick="btnUpdate_click"<br> /><br><br> </form><br><br></body><br></html><br><br><br>[/sell] |
|