zoukankan
html css js c++ java
ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
<
asp:GridView
ID
="GridView1"
runat
="server"
AutoGenerateColumns
="False"
PageSize
="10"
Width
="542px"
AllowPaging
="True"
AllowSorting
="True"
DataKeyNames
="DB1_1,DB1_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';
"
);
}
}
查看全文
相关阅读:
整合Druid数据源
SpringBoot与数据访问
IDEA spirng boot @Autowired注解 mapper出现红色下划线解决方法
IntelliJ Idea 常用快捷键列表
docker 安装mysql示例
设计模式都没用过,好意思出去面试?
为什么 Java 线程没有 Running 状态?
厉害了,淘宝千万并发,14 次架构演进…
Redis 内存满了怎么办……
Java 线程池 8 大拒绝策略,面试必问!
原文地址:https://www.cnblogs.com/ryb/p/561474.html
最新文章
finalize()方法的工作原理
如果对象的引用被置为null,;垃圾回收器是否会立即释放对象占用的内存?
什么类加载器的双亲委托模型?
7大排序
观察者模式
css —文本的水平垂直对齐
[LeetCode] 89. Gray Code
[LeetCode] Remove Duplicates from Sorted Array II
文本超出指定行数部分隐藏并用省略号显示
jQuery清空模态弹窗中的内容
热门文章
C++之string的compare用法
C++之单向链表
C++ vector的用法
C++之string赋值
C++之判断数组元素个数
springboot启动配置原理之三(事件监听机制)
springboot启动配置原理之二(运行run方法)
springboot启动配置原理之一(创建SpringApplication对象)
整合SpringData JPA
整合MyBatis(springboot)
Copyright © 2011-2022 走看看