Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated Select Case e.Item.ItemType Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem Dim myTableCell As TableCell myTableCell = e.Item.Cells(0) Dim myDeleteButton As LinkButton myDeleteButton = myTableCell.Controls(0) myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除此行吗?');") myDeleteButton.Text = "删除此行" End Select End Sub
Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
Dim myTableCell As TableCell
myTableCell = e.Item.Cells(0)
Dim myDeleteButton As LinkButton
myDeleteButton = myTableCell.Controls(0)
myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除此行吗?');")
myDeleteButton.Text = "删除此行"
End Select
End Sub
{
if(e.Item.ItemIndex>=0)
{
((TextBox)e.Item.FindControl("btnSelect")).Attributes.Add("");
}
}
{
if(e.Item.ItemIndex>=0)
{
((Button)e.Item.FindControl("btnDelete")).Attributes.Add("onclick","confirm('是否要删除记录?')");
}
}
myDeleteButton = e.Item.FindControl("delBt")
myDeleteButton.Text = "删除"
myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除:" + Trim(e.Item.Cells(0).Text) + "此招聘信息吗?');")
html:
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<asp:Button id="delbt" runat="server" CssClass="DelCss" CommandName="Delete"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
{
if(e.Item.ItemIndex>-1) // -1是表头
{
((删除按钮类型)e.Item.Controls[0]).Attributes.Add("onclick","return confirm('真的删除?');");
}
}
{
if(e.Item.ItemIndex>-1) // -1是表头
{
((删除按钮类型)e.Item.Cells[按钮所在列].Controls[0]).Attributes.Add("onclick","return confirm('真的删除?');");
}
}
this.myGrid.DataSource = this.myTab;
this.myGrid.DataKeyField = "usr_id";
this.myGrid.DataBind();
//绑定之后循环此控件,为每一个按钮添加事件
int i=0;
int mycount = this.myGrid.Items.Count;for(i=0;i<mycount;i++)
{
//为模板列(删除)添加事件
Button butdelete = (Button)this.myGrid.Items[i].FindControl("butdelete");
butdelete.Attributes.Add("onclick","return(confirm('确认要删除记录吗?'));");
//为按钮列(删除)添加事件
LinkButton linkdelete = (LinkButton)this.myGrid.Items[i].Cells[7].Controls[0];
linkdelete.Attributes.Add("onclick","return(confirm('确认要删除记录吗?'));");
}
try
{
//假定第6列为删除按钮所在列
AddConfirmAlert((WebControl)e.Item.Cells[5].Controls[0],"您确认删除此行?");
}
catch{}
}其中的AddConfirmAlert函数定义为:
public void AddConfirmAlert(System.Web.UI.WebControls.WebControl control,string text)
{
control.Attributes.Add("onClick","return confirm('"+text+"')");
}
private void DgEmp_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item)
{
LinkButton btn=(LinkButton)e.Item.Cells[5].Controls[0];
btn.Attributes.Add ("onclick",
"return confirm (\"您确定要删除此项记录吗?\");");
}
}
如果是模板列中放置的一个BUTTON
private void DgEmp_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType==ListItemType.Item)
{
Button btn=(Button)e.Item.FindControl("btnDelete");
btn.Attributes.Add ("onclick",
"return confirm (\"您确定要删除此项记录吗?\");");
}
}两种方法都是在ItemDataBound中实现的
{
if(e.Item.ItemIndex>-1) // -1是表头
{
((删除按钮类型)e.Item.Controls[0]).Attributes.Add("onclick","return confirm('真的删除?');");
}
}
DataGrid的ID:WareList
事件:WareList_ItemCreated
删除按钮的ID:btnDelete
private void WareList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.FindControl("btnDelete")!=null)
{
((LinkButton)e.Item.FindControl("btnDelete")).Attributes["onClick"] = "javascript: return confirm('您确实要删除这条记录吗?');";
}
}
事件中写呢??
datagrid不是提供子一个专门的删除事件吗?
DataGrid1_DeleteCommand
这个事件为什么大家都不用而要用那两种昵,,有什么不同?
lovecherry的博客
里面很多很好的DataGrid应用的例子
{
// if(! this.IsPostBack)
// {
// DataTable dt = this.GetData();
// Session["DATA"] = dt;
// this.BindDataGrid();
// }
// SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
// SqlCommand myCommand = new SqlCommand("select * from person", myConnection);
// myConnection.Open();
// SqlDataReader dr = myCommand.ExecuteReader();
// MyDataGrid.DataSource = dr;
// MyDataGrid.DataBind();
// myConnection.Close();
if(!Page.IsPostBack)
BindDataGrid();
}
private void BindDataGrid()
{
SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
SqlCommand myCommand = new SqlCommand("select * from person", myConnection);
myConnection.Open();
SqlDataReader dr = myCommand.ExecuteReader();
MyDataGrid.DataSource = dr;
MyDataGrid.DataBind();
myConnection.Close();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.MyDataGrid.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Cancel);
this.MyDataGrid.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Edit);
this.MyDataGrid.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Update);
this.MyDataGrid.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Delete);
this.MyDataGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.MyDataGrid_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void MyDataGrid_Delete(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
SqlCommand delCommand = new SqlCommand("delete from person where id=@id", myConnection);
delCommand.Parameters.Add("@id",SqlDbType.Char,10);
delCommand.Parameters["@id"].Value =MyDataGrid.DataKeys[e.Item.ItemIndex];
myConnection.Open();
delCommand.ExecuteNonQuery();
myConnection.Close();
BindDataGrid(); } private void MyDataGrid_Edit(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex=e.Item.ItemIndex ;
BindDataGrid();
} private void MyDataGrid_Cancel(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex =-1;
BindDataGrid();
} private void MyDataGrid_Update(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
SqlCommand updateCommand = new SqlCommand("update person set name=@name where id=@id", myConnection);
updateCommand.Parameters.Add("@name",SqlDbType.Char,30);
TextBox txtName=(TextBox)e.Item.FindControl("txtName");
updateCommand.Parameters["@name"].Value =txtName.Text;
updateCommand.Parameters.Add("@id",SqlDbType.Char,10);
updateCommand.Parameters["@id"].Value =MyDataGrid.DataKeys[e.Item.ItemIndex];
myConnection.Open();
updateCommand.ExecuteNonQuery();
myConnection.Close();
MyDataGrid.EditItemIndex =-1;
BindDataGrid(); } //确认删除对话框
private void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//删除确认
if(e.Item.ItemIndex != -1)
{
e.Item.Cells[4].Attributes.Add("onclick","return confirm('您真的要删除第 "+ e.Item.ItemIndex.ToString() + "行吗?')");
}
//颜色交替 e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='Yellow'");
// if(e.Item.ItemType == ListItemType.Item)
// {
// e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#ffffff'");
// } if(e.Item.ItemType ==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#ffffff'");
}
}