完整的gridview

来源:互联网 发布:怎么找淘宝水军刷差评 编辑:程序博客网 时间:2024/06/10 14:24

正好做过一个的自认为完整的gridview,感觉根datagrid也蛮像的
不过你说的联动什么的于gridview关系不大吧。。。。。
//读取表Supplier并绑定到GridView中
    private void BindGvSupplier()
    {
        OracleConnection conn = this.Conn();
        OracleCommand cmd = new OracleCommand("select * from Supplier", conn);
        OracleDataAdapter sda = new OracleDataAdapter(cmd);
        DataSet ds = new DataSet();
        sda.Fill(ds, "Supplier");

        string[] SuppId = new string[ds.Tables["Supplier"].Rows.Count];
        for (int i = 0; i < ds.Tables["Supplier"].Rows.Count; i++)
        {
            SuppId[i] = ds.Tables["Supplier"].Rows[i][0].ToString();
        }
        this.gvSupplier.DataSource = ds.Tables["Supplier"];
        this.gvSupplier.DataKeyNames[0] = "SuppId";
        this.gvSupplier.DataBind();
        this.lblPageIndex.Text = Convert.ToString(int.Parse(this.gvSupplier.PageIndex.ToString()) + 1);
        this.lblTotalPage.Text = this.gvSupplier.PageCount.ToString();
        this.lblCount.Text = this.GetTotalCount().ToString();
    }

    //分页触发的事件
    protected void gvSupplier_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.gvSupplier.PageIndex = e.NewPageIndex;
        this.BindGvSupplier();
        this.lblPageIndex.Text = Convert.ToString(int.Parse(this.gvSupplier.PageIndex.ToString()) + 1);
        this.cbAllSelect_CheckedChanged(this.cbAllSelect, e);
    }

    //删除按钮触发的事件
    protected void gvSupplier_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int id = e.RowIndex;
      
        GridViewRow gvr = this.gvSupplier.Rows[id];
        int SuppId=int.Parse(((HyperLink)(gvr.Cells[7].Controls[0])).Text.ToString());
        string sqlString = "delete from Supplier where SuppId=" + SuppId;
        //如果本页只有一条数据,删除后要向前翻一页
        if (this.gvSupplier.Rows.Count == 1)
        {
            if (this.gvSupplier.PageIndex > 1)
            {
                this.gvSupplier.PageIndex--;              
            }
        }
        int result = ExecuteSql(sqlString);
        if (result == 1)
        {
            this.Alert("你成功删除一条数据", this.Page);
        }
        this.BindGvSupplier();
        this.BindGvSupplier();

    }

    //绑定删除按钮的确认提示
    protected void gvSupplier_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton myLb = (LinkButton)(e.Row.Cells[8].Controls[1]);
            myLb.Attributes.Add("onclick","javascript:return confirm('你确认删除"+e.Row.Cells[0].Text+"吗?')");
            //鼠标经过时改变行的颜色
            e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#ffffe7'");
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='transparent'");
        }
    }

    //执行一条Oracle语句
    private int ExecuteSql(String sqlString)
    {
        //try
        //{
            OracleConnection conn = this.Conn();
            conn.Open();
            OracleCommand cmd = new OracleCommand(sqlString, conn);
            int effectedLine = cmd.ExecuteNonQuery();
            conn.Close();
            return effectedLine;
        //}
        //catch
        //{
        //    return 0;
        //}
    }


    //点击编辑按钮时触发的事件
    protected void gvSupplier_RowEditing(object sender, GridViewEditEventArgs e)
    {
        string s = this.gvSupplier.DataKeys[e.NewEditIndex][1].ToString();
        this.txtAddr1.Text = "dddd" + s;
        this.gvSupplier.EditIndex = e.NewEditIndex;
        this.BindGvSupplier();
    }
    //点击取消按钮时触发的事件
    protected void gvSupplier_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        this.gvSupplier.EditIndex = -1;
        this.BindGvSupplier();
    }
    //点击更新按钮时触发的事件
    protected void gvSupplier_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int id = e.RowIndex;
        GridViewRow gvr = this.gvSupplier.Rows[id];
        int suppId = int.Parse(((HyperLink)(gvr.Cells[7].Controls[0])).Text.ToString());
        string name = ((TextBox)gvr.Cells[0].Controls[0]).Text.ToString();
        string status = ((TextBox)gvr.Cells[1].Controls[0]).Text.ToString();
        string addr1 = ((TextBox)gvr.Cells[2].Controls[0]).Text.ToString();
        string addr2 =((TextBox) gvr.Cells[3].Controls[0]).Text.ToString();
        string city = ((TextBox)gvr.Cells[4].Controls[0]).Text.ToString();
        string state = ((TextBox)gvr.Cells[5].Controls[0]).Text.ToString();
        string zip=((TextBox)gvr.Cells[6].Controls[0]).Text.ToString();
        string sqlString = "update Supplier set Name='" + name + "',Status='" + status + "',Addr1='" + addr1 + "',Addr2='" + addr2 + "',City='" + city + "',State='" + state + "',Zip='" + zip + "' where SuppId=" + suppId;
        int result = ExecuteSql(sqlString);
        if (result == 1)
        {
            //......
        }
        this.gvSupplier.EditIndex = -1;
        this.BindGvSupplier();
    }

//增加一条记录
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        string name = this.txtName.Text.ToString();
        string status = this.txtStatus.Text.ToString();
        string addr1 = this.txtAddr1.Text.ToString();
        string addr2 = this.txtAddr2.Text.ToString();
        string city = this.txtCity.Text.ToString();
        string state = this.txtState.Text.ToString();
        string zip = this.txtZip.Text.ToString();
        string sqlString = "insert into Supplier values(SQSuppId.Nextval,'" + name + "','" + status + "','" + addr1 + "','" + addr2 + "','" + city + "','" + state + "','" + zip + "')";
        if (this.ExecuteSql(sqlString) == 1)
        {
            this.Alert("你成功添加一条数据", this.Page);
        }
        else
        {
            this.Alert("添加未成功!", this.Page);
        }
        this.BindGvSupplier();
    }

    //查看共有多少条数据
    private int GetTotalCount()
    {
        //try
        //{
        OracleConnection conn = this.Conn();
        conn.Open();
        OracleCommand cmd = new OracleCommand("select count(*) from Supplier", conn);
        int count = Convert.ToInt32(cmd.ExecuteScalar());
        conn.Close();
        return count;
        //}
        //catch
        //{
        //    return 0;
        //}
    }

    //弹出警告窗口
    public void Alert(string str_Message, Page page)
    {
        page.RegisterStartupScript("", "<script>alert('" + str_Message + "');</script>");
    }

    //弹出确认对话框
    public void Confirm(string str_Message, string btn, Page page)
    {
        page.RegisterStartupScript("", "<script> if (confirm('" + str_Message + "')==true){document.forms(0)." + btn + ".click();}</script>");
    }

    protected void cbAllSelect_CheckedChanged(object sender, EventArgs e)
    {
        for(int i=0;i<this.gvSupplier.Rows.Count;i++)
        {
            CheckBox cbSelect=(CheckBox)(gvSupplier.Rows[i].Cells[10].FindControl("cbSelect"));
            cbSelect.Checked=this.cbAllSelect.Checked;
        }
    }

    //当点击删除按钮时删除所有checkbox被选中的数据
    protected void btnDel_Click(object sender, EventArgs e)
    {
        //如果用户确认将触发btnRealDel的事件
        this.Confirm("你真的要删除你所选的数据么?", "btnRealDel", this.Page);
     
    }

    //真实的删除操作
    public void btnRealDel_Click(object sender, EventArgs e)
    {
        int count = 0;
        for (int i = 0; i < this.gvSupplier.Rows.Count; i++)
        {
            CheckBox myCb = (CheckBox)(this.gvSupplier.Rows[i].Cells[10].FindControl("cbSelect"));
            if (myCb.Checked)
            {
                count++;
                HyperLink hl = (HyperLink)(this.gvSupplier.Rows[i].Cells[7].Controls[0]);
                int suppId = int.Parse(hl.Text.ToString());
                string sqlString = "delete from Supplier where SuppId=" + suppId;
                this.ExecuteSql(sqlString);
            }
        }
        if (count > 0)
        {
            this.Alert("你成功删除了" + count + "条数据", this.Page);
            this.BindGvSupplier();
        }    
    }

原创粉丝点击