ASP.NET 2.0下含有DropDownList的GridView编辑、删除的完整例子
2010-10-25 13:02:44 来源:Web开发网核心提示:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" PageSize="10"Width="542px" AllowPag
<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';"); } }
.net中如何用findcontrol获得GridView自定义控件的值
Tags:ASP.NET DropDownList GridView
编辑录入:爽爽 [复制链接] [打 印][]
更多精彩
赞助商链接