您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1883|回复: 0

[技巧]DataGrid编辑数据

[复制链接]

2552

主题

15

听众

3161

积分

管理员

Rank: 75Rank: 75Rank: 75

性别
听众数
15
买家信用
卖家信用
在线时间
1426 小时
相册
0

版主勋章 管理员勋章 特殊贡献勋章 原创先锋勋章 解答高手勋章 新人进步勋章 智慧卓越勋章 开发团队勋章 在线之星勋章 社区元老勋章 无私奉献勋章 最佳创意勋章 勤奋学习勋章

发表于 2006-6-4 21:11:00 |显示全部楼层
程序员装备

[sell=30]<br>&lt;%@ Import Namespace=&quot;System.Data&quot; %&gt;<br><br>&lt;html&gt;<br> <br>&lt;s cript language=&quot;VB&quot; runat=&quot;server&quot;&gt;<br><br>    Dim CartView As DataView<br>    Dim runningTotal As Double = 0<br><br>    &#39;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(&quot;DG_ShoppingCart&quot;) Is Nothing Then<br>                tmpCart = new DataTable()<br>                tmpCart.Columns.Add(new DataColumn(&quot;数量&quot;, GetType(String)))<br>                tmpCart.Columns.Add(new DataColumn(&quot;产品&quot;, GetType(String)))<br>                tmpCart.Columns.Add(new DataColumn(&quot;价格&quot;, GetType(Double)))<br>                tmpCart.Columns.Add(new DataColumn(&quot;礼品包&quot;, GetType(Boolean)))<br>                Session(&quot;DG_ShoppingCart&quot;) = tmpCart<br><br>                &#39; 第一次加载 -- 预填充一些数据<br>                For i= 1 to 6<br>                    dr = tmpCart.NewRow()<br>                    dr(0) = &quot;1&quot;<br>                    dr(1) = &quot;产品&quot; &amp; 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(&quot;DG_ShoppingCart&quot;)<br>            End If<br>        End Get<br>    End Property<br><br>    &#39;Sub Page_Init(sender As Object, e As EventArgs)<br>    &#39;    MyDataGrid.EnableViewState = true<br>    &#39;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(&quot;txtQty&quot;)<br>            Dim giftCheckBox As CheckBox = _item.FindControl(&quot;chkGIft&quot;)<br><br>            &#39; 对于数据库,我们应使用一条更新命令。<br>            &#39; 因为这是一个内存内数据表,所以我们只更改内存内的行。<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>&lt;/s cript&gt;<br><br>&lt;body&gt;<br><br>    &lt;h3&gt;&lt;font face=&quot;宋体&quot;&gt;DataGrid 的自定义编辑&lt;/font&gt;&lt;/h3&gt;<br><br>    &lt;form runat=server&gt;<br><br>      &lt;ASP:DataGrid id=&quot;MyDataGrid&quot; runat=&quot;server&quot;<br>        BorderColor=&quot;black&quot;<br>        BorderWidth=&quot;1&quot;<br>        GridLines=&quot;none&quot;<br>        CellPadding=&quot;4&quot;<br>        Font-Name=&quot;宋体&quot;<br>        Font-Size=&quot;8pt&quot;<br>        HeaderStyle-BackColor=&quot;#aaaadd&quot;<br>        AutoGenerateColumns=&quot;false&quot;<br>      &gt;<br>          &lt;Columns&gt;<br>            &lt;asp:TemplateColumn HeaderText=&quot;数量&quot;&gt;<br>                &lt;ItemTemplate&gt;<br>                    &lt;asp:TextBox id=txtQty runat=&quot;server&quot;<br>                        Text=&#39;&lt;%# DataBinder.Eval(Container.DataItem, &quot;数量&quot;) %&gt;&#39;<br>                        Width=&quot;40px&quot;<br>                        /&gt;<br>                &lt;/ItemTemplate&gt;<br>            &lt;/asp:TemplateColumn&gt;<br>            &lt;asp:BoundColumn HeaderText=&quot;产品&quot; DataField=&quot;产品&quot;/&gt;<br>            &lt;asp:BoundColumn HeaderText=&quot;价格&quot; DataField=&quot;价格&quot; DataFormatString=&quot;{0:c}&quot; /&gt;<br>            &lt;asp:TemplateColumn HeaderText=&quot;礼品包?&quot;&gt;<br>                &lt;ItemTemplate&gt;<br>                    &lt;center&gt;<br>                    &lt;asp:CheckBox id=chkGIft runat=&quot;server&quot;<br>                        Checked=&#39;&lt;%# DataBinder.Eval(Container.DataItem, &quot;礼品包&quot;) %&gt;&#39;<br>                        /&gt;<br>                    &lt;/center&gt;<br>                &lt;/ItemTemplate&gt;<br>            &lt;/asp:TemplateColumn&gt;<br>            &lt;asp:TemplateColumn HeaderText=&quot;小计&quot;&gt;<br>                &lt;ItemTemplate&gt;<br>                    &lt;p align=&quot;right&quot;&gt;<br>                    &lt;asp:Label runat=&quot;server&quot;<br>                        Text=&#39;&lt;%# System.String.Format(&quot;{0:c}&quot;,CalcTotal(Int32.Parse(DataBinder.Eval(Container.DataItem, &quot;数量&quot;)),DataBinder.Eval(Container.DataItem, &quot;价格&quot;))) %&gt;&#39;<br>                        /&gt;<br>                    &lt;/p&gt;<br>                &lt;/ItemTemplate&gt;<br>                &lt;FooterTemplate&gt;<br>                    &lt;p align=&quot;right&quot;&gt;&lt;b&gt;<br>                    &lt;asp:Label runat=&quot;server&quot;<br>                        Text=&#39;&lt;%# System.String.Format(&quot;{0:c}&quot;, runningTotal) %&gt;&#39;<br>                        /&gt;<br>                    &lt;/b&gt;&lt;/p&gt;<br>                &lt;/FooterTemplate&gt;<br><br>            &lt;/asp:TemplateColumn&gt;<br>          &lt;/Columns&gt;<br><br>      &lt;/asp:DataGrid&gt;<br><br>    &lt;asp:LinkButton id=btnUpdate runat=&quot;server&quot;<br>        Text=&quot;更新合计&quot;<br>        Font-Name=&quot;Verdana&quot;<br>        Font-Size=&quot;9pt&quot;<br>        onClick=&quot;btnUpdate_click&quot;<br>        /&gt;<br><br>  &lt;/form&gt;<br><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br><br>[/sell]
您需要登录后才可以回帖 登录 | 立即注册


关闭

站长推荐上一条 /1 下一条



      
    Archiver|手机版|臣迅电子商务|网站地图|渝ICP备11003388号

GMT+8, 2012-5-20 09:39

© 2001-2011 Powered by Discuz! X2.5. Theme By Yeei! update By CNNTEC

webSite begin 2005

回顶部