GridView中用CommandField實現簡單的編輯(更新,取消),刪除


<asp:GridView ID="GridView1"   AutoGenerateColumns="false"  
        runat="server" onrowdeleting="GridView1_RowDeleting" 
        onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" 
        onrowcancelingedit="GridView1_RowCancelingEdit"   >
        <Columns>
            <asp:BoundField DataField="ID" ReadOnly="true" HeaderText="項目編號" />
            <asp:BoundField DataField="PlanID" HeaderText="計划編號" />
            <asp:BoundField DataField="ProCode" HeaderText="項目狀態" />
            <asp:BoundField DataField="ProName" HeaderText="項目名稱" />
            <asp:BoundField DataField="Manager" HeaderText="負責人" />
            <asp:BoundField DataField="Phone" HeaderText="聯系電話" />
            <asp:CommandField HeaderText="選擇" ShowSelectButton="true" />
            <asp:CommandField HeaderText="編輯" ShowEditButton="true"   />
            <asp:CommandField HeaderText="刪除" ShowDeleteButton="true" />
        </Columns>
    </asp:GridView>

代碼頁:

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                bind();
            }
        }
        protected void bind()    //綁定數據源
        {
            string sqlstr1 = "select * from project";
            DataSet ds= SQLHelper.ExecuteDataSet(sqlstr1);//數據訪問函數自定義
            this.GridView1.DataSource = ds;
            this.GridView1.DataKeyNames = new string[] { "id" };//定義主要字段以便后來方便使用
            this.GridView1.DataBind();
        }

//刪除操作,利用e.RowIndex獲取索引

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string sqlstr1 = "delete from project where id='"+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'";
            if (SQLHelper.ExecuteNonQuery(sqlstr1) > 0)
            {
                functions.Alert("成功!");
                bind();
            }
            else
            {
                functions.Alert("Fail");
            }
        }

//編輯操作,利用e.NewEditIndex獲取當前編輯行索引,要再次綁定顯示編輯行的原數據

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

//編輯狀態下,更新操作,利用e.RowIndex獲取索引,更新完后把當前編輯索引賦值為-1,變回正常顯示狀態

 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string sqlstr1 = "update project set id='"+GridView1.Rows[e.RowIndex].Cells[0].ToString().Trim()+"',planid='"+GridView1.Rows[e.RowIndex].Cells[1].ToString().Trim()+"',procode='"+GridView1.Rows[e.RowIndex].Cells[2].ToString().Trim()+"',proname='"+GridView1.Rows[e.RowIndex].Cells[3].ToString().Trim()+"',manager='"+GridView1.Rows[e.RowIndex].Cells[4].ToString().Trim()+"',phone='"+GridView1.Rows[e.RowIndex].Cells[5].ToString().Trim()+"' where id='"+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'";
            if (SQLHelper.ExecuteNonQuery(sqlstr1) > 0)
            {
                GridView1.EditIndex = -1;
                functions.Alert("True");
                bind();
            }
            else
            {
                functions.Alert("False");
            }
        }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM