• 动态GridView +DataTable


    <asp:GridView ID="GridView1" runat="server"
                    onrowediting="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowUpdating="GridView1_RowUpdating">
                    <Columns>
                        <asp:CommandField ShowEditButton="True" />
                        <asp:CommandField ShowDeleteButton="True" />
                    </Columns>
                </asp:GridView>
               
                <table>
                    <tr>
                        <td>text:<asp:TextBox ID="newtextTextBox" runat="server"></asp:TextBox></td>
                        <td>amount:<asp:TextBox ID="amountTextBox" runat="server"></asp:TextBox></td>
                    </tr>
                </table>
                <asp:Button ID="addnewlineButton" runat="server" Text="add new line" OnClick="addnewlineButton_Click" />

    cs

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DataTable dt = new DataTable();

                dt.Columns.Add("text");
                dt.Columns.Add("amount");
                ViewState["table"] = dt;
                BindGrid();
            }

        }

        private void BindGrid()
        {
            DataTable dt = ViewState["table"] as DataTable;
            if (dt != null)
            {
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }

        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            BindGrid();
        }

        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            BindGrid();
        }

        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            DataTable dt = ViewState["table"] as DataTable;
            if (dt != null)
            {
                dt.Rows.RemoveAt(e.RowIndex);
                GridView1.EditIndex = -1;
                BindGrid();
            }
           
        }

        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
             DataTable dt=ViewState["table"] as DataTable;
             if (dt != null)
             {
                 dt.Rows[e.RowIndex][0] = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
                 dt.Rows[e.RowIndex][1] = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
                 GridView1.EditIndex = -1;
                 BindGrid();

             }
        }

        protected void addnewlineButton_Click(object sender, EventArgs e)
        {
            DataTable dt=ViewState["table"] as DataTable;
            if (dt != null)
            {
                DataRow dr = dt.NewRow();
                dr[0] = newtextTextBox.Text;
                dr[1] = amountTextBox.Text;
                dt.Rows.Add(dr);
                ViewState["table"] = dt;

                BindGrid();
                newtextTextBox.Text = "";
                amountTextBox.Text = "";
               
            }

  • 相关阅读:
    linux rcu
    linux下的进程、网络、性能监控命令
    使用optimizely做A/B测试
    使用logstash收集日志的可靠性验证
    LAMP-HTTPD的安装全步骤
    Iptables Save
    linux-ftp
    远程桌面验证问题,函数错误-windows
    ESXIroot密码重置
    centos or windows 双系统
  • 原文地址:https://www.cnblogs.com/hubj/p/1310758.html
Copyright © 2020-2023  润新知