zoukankan      html  css  js  c++  java
  • ASP.NET(99):如何在GridView中一次性批量更新多行数据

    假定有一个Product表,字段有(Id,Name,Quantity,...)我们要一次批量更新Quantity的值

        首先在Gridview中,Quantity列以TemplateField显示,其他的列属性设为只读,把显示格式设为TextBox。

    <asp:TemplateField HeaderText="Quantity">
        <itemtemplate>
        <asp:TextBox ID="editQuantity" runat="server" CssClass="GridEditingRow"   Width="24px" MaxLength="2" Text='<%#Eval("Quantity")%>' />
        </itemtemplate>
    </asp:TemplateField>
    
    

       在GridView下面添加一个Button控件,定义onclick方法为updateButton_Click

       最后updateButton_Click代码为:

    protected void updateButton_Click(object sender, EventArgs e)
    {
        int rowsCount = grid.Rows.Count;
        GridViewRow gridRow;
        TextBox quantityTextBox;
        string productId;
        int quantity;
        bool success = true;
        // 遍历GridView中的每一行
        for (int i = 0; i < rowsCount; i++)
        {
            // 获行当前行
            gridRow = grid.Rows[i];
            // 通过DATAKEYS来取行没显示出来的ID号
            Id = grid.DataKeys[i].Value.ToString();
            // 
            quantityTextBox = (TextBox)gridRow.FindControl("editQuantity");
            // 转换为整形,如果输入的是非法字符Int32.TryParse返回FALSE
            if (Int32.TryParse(quantityTextBox.Text, out quantity))
            {
                // 调用业务层的方法更新数据
                success = success && BLL.UpdateItem(Id, quantity);
            }
            else
            {
                // 更新失败
                success = false;
            }
            // 显示信息
            statusLabel.Text = success ?
              "<br />更新成功!<br />" :
              "<br />更新失败!<br />";
        }
        // 重新绑定GridVIEW
        PopulateGridView();
    }
  • 相关阅读:
    alias 命令
    iptables 命令
    unzip 命令
    gzip 命令
    zip 命令
    tar 命令
    nslookup 命令
    dig 命令
    java 线程池
    java 线程
  • 原文地址:https://www.cnblogs.com/springsnow/p/814246.html
Copyright © 2011-2022 走看看