完全代码实现GridView删除按钮提示
2006-04-20 16:12
465 查看
今天终于实现了完全代码下使GridView中的删除按钮实现删除提示的功能。
首先,HTML代码:
<asp:GridView ID="SubjectGrid" runat="server">
</asp:GridView>
第二步,初始化GridView Columns:
void Page_Load(Object sender, EventArgs e)
{
ShowGrid();
}
private void ShowGrid()
{
DataTable customerTable = new DataTable("Customers");
grdSubject.AutoGenerateColumns = false;
grdSubject.ShowHeader = false;
grdSubject.DataKeyNames = new String[] { "Id" };
DataControlFieldCollection dcfc = grdSubject.Columns;
dcfc.Clear();
BoundField bf;
bf = new BoundField();
bf.DataField = "Id";
bf.Visible = false;
dcfc.Add(bf);
bf = new BoundField();
bf.DataField = "Title";
dcfc.Add(bf);
bf = new BoundField();
bf.DataField = "BeginDate";
bf.SortExpression = "BeginDate";
bf.HtmlEncode = false;
bf.DataFormatString = "{0:yyyy-MM-dd}";
dcfc.Add(bf);
bf = new BoundField();
bf.DataField = "EndDate";
bf.HtmlEncode = false;
bf.DataFormatString = "{0:yyyy-MM-dd}";
dcfc.Add(bf);
ButtonField selectRow = new ButtonField();
selectRow.ButtonType = ButtonType.Button;
selectRow.CommandName = "Select";
selectRow.Text = "选择";
dcfc.Add(selectRow);
ButtonField delRow = new ButtonField();
delRow.ButtonType = ButtonType.Button;
delRow.AccessibleHeaderText = "Delete";
delRow.CommandName = "Delete";
delRow.Text = "删除";
delRow.CausesValidation = true;
dcfc.Add(delRow);
grdSubject.DataSource = dt.DefaultView;
grdSubject.DataBind();
}
第三步:RowDataBound
void grdSubject_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判断是否是DataRow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//鼠标经过Row时的效果
e.Row.Attributes.Add("onmouseover", "e=this.style.backgroundColor; this.style.backgroundColor='linen'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=e");
//当开始时间大于现在时间,显示行为蓝色
if (DateTime.Parse(e.Row.Cells[2].Text) > DateTime.Now)
{
e.Row.BackColor = Color.LightSkyBlue;
}
//当结束时间小于现在时间,显示行为灰色
if (DateTime.Parse(e.Row.Cells[3].Text) < DateTime.Now)
{
e.Row.BackColor = Color.Silver;
}
//当点击删除按钮时激活提示
Button btn = (Button)e.Row.Cells[5].Controls[0];
btn.Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
}
}
其中的关键是Button btn=(Button)e.Row.Cells[5].Controls[0]; 即声明此事件是由第6列中的第一个控件调用。
第四步:执行
void grdSubject_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
void grdSubject_RowCommand(object sender, GridViewCommandEventArgs e)
{
//单击Grid中按钮时发生throw new Exception("The method or operation is not implemented.");
int selIndex = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = grdSubject.Rows[selIndex];
if (e.CommandName == "Select")
{
txtSubjectTitle.Text = selectedRow.Cells[1].Text;
dateBegin.Value = selectedRow.Cells[2].Text;
dateEnd.Value = selectedRow.Cells[3].Text;
}
if (e.CommandName == "Delete")
{
Hsf.Touch.Dto.Subject item = new Hsf.Touch.Dto.Subject();
item.Id = int.Parse(grdSubject.DataKeys[selIndex].Value.ToString());
try
{
TouchFactory.CreateSubjectManage().Delete(item);
//删除成功,清除输入框内容
Clear();
}
catch (Exception err)
{
ShowMessageBox("删除失败 \n" + err.Message);
}
}
ShowGrid();
}
首先,HTML代码:
<asp:GridView ID="SubjectGrid" runat="server">
</asp:GridView>
第二步,初始化GridView Columns:
void Page_Load(Object sender, EventArgs e)
{
ShowGrid();
}
private void ShowGrid()
{
DataTable customerTable = new DataTable("Customers");
grdSubject.AutoGenerateColumns = false;
grdSubject.ShowHeader = false;
grdSubject.DataKeyNames = new String[] { "Id" };
DataControlFieldCollection dcfc = grdSubject.Columns;
dcfc.Clear();
BoundField bf;
bf = new BoundField();
bf.DataField = "Id";
bf.Visible = false;
dcfc.Add(bf);
bf = new BoundField();
bf.DataField = "Title";
dcfc.Add(bf);
bf = new BoundField();
bf.DataField = "BeginDate";
bf.SortExpression = "BeginDate";
bf.HtmlEncode = false;
bf.DataFormatString = "{0:yyyy-MM-dd}";
dcfc.Add(bf);
bf = new BoundField();
bf.DataField = "EndDate";
bf.HtmlEncode = false;
bf.DataFormatString = "{0:yyyy-MM-dd}";
dcfc.Add(bf);
ButtonField selectRow = new ButtonField();
selectRow.ButtonType = ButtonType.Button;
selectRow.CommandName = "Select";
selectRow.Text = "选择";
dcfc.Add(selectRow);
ButtonField delRow = new ButtonField();
delRow.ButtonType = ButtonType.Button;
delRow.AccessibleHeaderText = "Delete";
delRow.CommandName = "Delete";
delRow.Text = "删除";
delRow.CausesValidation = true;
dcfc.Add(delRow);
grdSubject.DataSource = dt.DefaultView;
grdSubject.DataBind();
}
第三步:RowDataBound
void grdSubject_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判断是否是DataRow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//鼠标经过Row时的效果
e.Row.Attributes.Add("onmouseover", "e=this.style.backgroundColor; this.style.backgroundColor='linen'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=e");
//当开始时间大于现在时间,显示行为蓝色
if (DateTime.Parse(e.Row.Cells[2].Text) > DateTime.Now)
{
e.Row.BackColor = Color.LightSkyBlue;
}
//当结束时间小于现在时间,显示行为灰色
if (DateTime.Parse(e.Row.Cells[3].Text) < DateTime.Now)
{
e.Row.BackColor = Color.Silver;
}
//当点击删除按钮时激活提示
Button btn = (Button)e.Row.Cells[5].Controls[0];
btn.Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
}
}
其中的关键是Button btn=(Button)e.Row.Cells[5].Controls[0]; 即声明此事件是由第6列中的第一个控件调用。
第四步:执行
void grdSubject_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
void grdSubject_RowCommand(object sender, GridViewCommandEventArgs e)
{
//单击Grid中按钮时发生throw new Exception("The method or operation is not implemented.");
int selIndex = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = grdSubject.Rows[selIndex];
if (e.CommandName == "Select")
{
txtSubjectTitle.Text = selectedRow.Cells[1].Text;
dateBegin.Value = selectedRow.Cells[2].Text;
dateEnd.Value = selectedRow.Cells[3].Text;
}
if (e.CommandName == "Delete")
{
Hsf.Touch.Dto.Subject item = new Hsf.Touch.Dto.Subject();
item.Id = int.Parse(grdSubject.DataKeys[selIndex].Value.ToString());
try
{
TouchFactory.CreateSubjectManage().Delete(item);
//删除成功,清除输入框内容
Clear();
}
catch (Exception err)
{
ShowMessageBox("删除失败 \n" + err.Message);
}
}
ShowGrid();
}
相关文章推荐
- 完全代码实现GridView删除按钮提示
- 完全代码实现GridView删除按钮提示
- GridView 绑定的删除按钮如何实现提示信息“你要删除***人吗?”
- GridView中的编辑和删除按钮,执行更新和删除代码之前的更新提示或删除提示
- GridView控件删除行的操作提示及自定义数据行的代码实现
- GridView中删除按钮的确认提示
- 在GridView中自定按钮,实现删除和更新
- GridView使用CommandField删除列实现删除时提示确认框
- asp.net gridview实现全选,反选与删除记录的操作代码
- ASP.NET2.0中GRIDVIEW控件完全代码实现模版列排序!(代码调试已通过)
- Gridview实现删除弹出提示信息
- GridView使用CommandField删除列实现删除时提示确认框
- asp.net GridView中删除按钮的实现
- GridView连接SQL Server 2005实现增加、更新、删除按钮时遇到的两个错误及解决办法
- bootstrap实现点击删除按钮弹出确认框的实例代码
- gridview 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- GridView实现鼠标移动是,动态显示‘编辑、删除、查看’等命令按钮
- DataList、GridView、dataGridView、中判断提示是否删除一行记录代码
- 实现滑动出现删除按钮的代码
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范