惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园 - 胡枫

ASP.NET URL Rewrite. URL重写 asp.net 中DataGrid自定义分页(简单,实用,易懂) 实现类似textarea这样可以滚动显示内容的方法 各种浏览器CSS hack方法 HTML+CSS+JS学习笔记 JS学习笔记ZT Asp.net 备份、还原Ms SQLServer及压缩Access数据库 我该怎样卸载IE7? ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转) ASP读取显示TXT文件内容 ASP.NET 防注入的两个通用函数 innerText,outerText,innerHTML,outerHTML 如何在TextBox控件中显示系统当前时间?包括:年、月、日、时、分 ASP.NET 防注入的两个通用函数 C# 操作ACCESS数据库 ASP判断是否包含字符串(InStr 函数) asp.net2.0中Repeater的分页使用 一个GridView编辑删除的例子 asp.net中没有类似asp中Left()函数怎么办?
ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
胡枫 · 2007-11-21 · via 博客园 - 胡枫

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" PageSize="10"
                        Width="542px" AllowPaging="True" AllowSorting="True"
                         DataKeyNames="DB31_1,DB31_2" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnSorting="GridView1_Sorting" >
                        <Columns>
                            <asp:TemplateField HeaderText="序号">
                                <ItemTemplate>
                                <%# this.GridView1.PageIndex * this.GridView1.PageSize + this.GridView1.Rows.Count + 1%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="学历代码" SortExpression="DB1_1">
                                <EditItemTemplate>
                                    <%--<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DB1_1") %>'></asp:TextBox>--%>
                               <asp:DropDownList ID ="ddlXL" runat="server"  DataValueField='<%# Bind("DB1_1") %>'></asp:DropDownList>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("xueliText") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="学历名称" SortExpression="DB1_2">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("DB1_2") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("DB1_2") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                         
                        <asp:TemplateField HeaderText="操作" ShowHeader="False">
                        <EditItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                 Text="更新"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                Text="取消"></asp:LinkButton>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                Text="编辑" OnClientClick="return confirm('确认要编辑吗?');"></asp:LinkButton>
                       
                            <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Delete"
                                Text="删除" OnClientClick="return confirm('确认要删除吗?');"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Select"
                                Text="选择"></asp:LinkButton>
                        </ItemTemplate>
                        </asp:TemplateField>
                       </Columns>
                       <AlternatingRowStyle BackColor="Aquamarine" />
                    </asp:GridView>
    /// <summary>
    /// 绑定数据到GridView
    /// </summary>
    private void GridViewBind()
    {
        检索数据库
        string strSql = "SELECT * FROM DB1";
        得到数据集
        this.GridView1.DataSource=conn.GetDs(strSql).Tables[0].DefaultView;
        this.GridView1.DataBind();
  
    }
    /// <summary>
    /// 编辑当前行
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        //当前编辑行背景色高亮
        this.GridView1.EditRowStyle.BackColor = Color.FromName("#F7CE90");
        GridViewBind();
    }
    /// <summary>
    /// 取消编辑状态
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        GridViewBind();
    }
    /// <summary>
    /// 删除记录过程
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        //得到单位编号
        string rowToDelete = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
        //转换为整数
        //int ID=Convert.ToInt32(rowToDelete);
        //从数据库中删除
        string str = "DELETE FROM DB1 where DB1_1=" + "'" + rowToDelete + "'" + "";
      
        try
        {
        conn.RunSql(str);
        //重新绑定数据
        GridViewBind();
        }
        catch (Exception ex)
        {
        Response.Write("数据库错误,错误原因:" + ex.Message);
        Response.End();
        }

    }
    /// <summary>
    /// 更新记录过程
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        string ID = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
        string DB1_1 = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;
        //string DB1_2 = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;
        string DB1_2 = (((DropDownList))GridView1.Rows[e.RowIndex].FindControl("ddlXL")).SelectedItem.Text;
       
    //判断表单项是否有空并给出提示信息
        if (DB1_1 == "" || DB1_2 == "")
        {
            conn.Alert("请输入完整信息!", Page);
            return;
        }            
       try
       {
        conn.BuilderEdit("select * from DB1 where DB1_1 ='" + ID + "'");
        conn.dr["DB1_1"] = DB1_1;
        conn.dr["DB1_2"] = DB1_2;
        conn.BuilderEditClose();
       }
       catch (OracleException err)
       {
            if (err.Code.ToString() == "1")
                conn.Alert("错误:已存在具有相同主键的记录", Page);
            else
                conn.Alert("错误:未能添加记录", Page);
        }

        Response.Write("<script language='javascript'>alert('数据已被保存!');</script>");
        //返回浏览状态
        GridView1.EditIndex = -1;
        GridViewBind();
    }
    /// <summary>
    /// 分页事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridViewBind();
    }
    /// <summary>
    /// 加入鼠标效果及为DropDownList绑定值
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //为DropDownList绑定值
        if (((DropDownList)e.Row.FindControl("ddlXL")) != null)
        {
            DropDownList ddlXL = (DropDownList)e.Row.FindControl("ddlXL");
            ddlXL.Items.Clear();
            ddlXL.Items.Add(new ListItem("博士", "1"));
            ddlXL.Items.Add(new ListItem("硕士", "2"));
            ddlXL.Items.Add(new ListItem("学士", "3"));
        }

        //加入鼠标滑过的高亮效果
        if (e.Row.RowType == DataControlRowType.DataRow)//判定当前的行是否属于datarow类型的行
        {
            //当鼠标放上去的时候 先保存当前行的背景颜色 并给附一颜色
            e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='yellow',this.style.fontWeight='';");
            //当鼠标离开的时候 将背景颜色还原的以前的颜色
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
        }
        //单击行改变行背景颜色
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes.Add("onclick", "this.style.backgroundColor='#99cc00'; this.style.color='buttontext';this.style.cursor='default';");
        }
    }