分享
 
 
 

ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!

王朝asp·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

<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';");

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有