菜鸟求助:关于DataGrid中的“按钮列”,请高手帮帮忙……

hangsome 2005-06-21 11:24:10
ASP.NET(C#) + Sql Server2000开发Webform

在DataGrid中使用了“按钮列”,对于DeleteCommand,UpdateCommand的事件处理函数,请各位大侠给点示例代码,谢谢!!!

学习,关注……
...全文
54 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qsoo 2005-06-21
  • 打赏
  • 举报
回复
<asp:datagrid id="DataGrid1" runat="server" HorizontalAlign="Center" AutoGenerateColumns="False"
CellPadding="3" Width="610px" Font-Size="12px" DataKeyField="c_id" OnDeleteCommand="DataGrid1_Delete"
OnUpdateCommand="DataGrid1_Update" OnCancelCommand="DataGrid1_Cancel" OnEditCommand="DataGrid1_Edit">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<HeaderStyle HorizontalAlign="Center" BackColor="#F0F0F0"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="c_id" ReadOnly="True" HeaderText="编 号"></asp:BoundColumn>
<asp:BoundColumn DataField="c_name" HeaderText="类 别"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="编 辑" CancelText="取消" EditText="编 辑">
<ItemStyle Font-Names="Arial" ForeColor="#006633" VerticalAlign="Middle"></ItemStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="删 除" HeaderText="删 除" CommandName="Delete">
<ItemStyle Font-Names="Arial" ForeColor="OrangeRed"></ItemStyle>
</asp:ButtonColumn>
</Columns>
</asp:datagrid>


public void DataGrid1_Edit(object sender, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=(int)e.Item.ItemIndex;
GridBind();
}
public void DataGrid1_Cancel(object sender, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=-1;
GridBind();
}
public void DataGrid1_Update(object sender, DataGridCommandEventArgs e)
{
string c_id=Convert.ToString(DataGrid1.DataKeys[(int)e.Item.ItemIndex]);
TextBox c_name=(TextBox)e.Item.Cells[1].Controls[0];;
string updatecmd = "UPDATE category SET c_name='"+c_name.Text+"' where c_id='"+c_id+"' ";
shop.myData mydata1=new shop.myData();
mydata1.executeUpdate(updatecmd);
DataGrid1.EditItemIndex=-1;
GridBind();
}
public void DataGrid1_Delete(object sender, DataGridCommandEventArgs e)
{

string c_id=Convert.ToString(DataGrid1.DataKeys[(int)e.Item.ItemIndex]);
String deletecmd="DELETE from category where c_id='"+c_id+"'";
shop.myData mydata1=new shop.myData();
mydata1.executeUpdate(deletecmd);
Response.Write("<script language='JavaScript'>alert('"+"记录删除成功"+"'); </script>");
GridBind();
}
zxl0110 2005-06-21
  • 打赏
  • 举报
回复
public void S_topicCommand(Object sender, DataGridCommandEventArgs e) //删除数据
{
if (((LinkButton)e.CommandSource).CommandName == "Delete")
{
conn.Open();
TableCell ItemCell=e.Item.Cells[0];
string ID=ItemCell.Text;
sql="delete from active where ID="+ID+"";
//Response.Write(sql);
//Response.End();
comm=new OleDbCommand(sql,conn);
comm.CommandText=sql;
comm.ExecuteNonQuery();
conn.Close();//删除数据库内记录
Response.Redirect("active_manage.aspx");

}
}

在前台页面用
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 96px; POSITION: absolute; TOP: 48px" runat="server"
AutoGenerateColumns="False" AllowPaging="True" Width="488px" OnPageIndexChanged="DataGrid_PageChanged" OnItemDataBound="MydataGrid_bound" OnItemCommand="S_topicCommand">
调用就行了哈
biao88482005 2005-06-21
  • 打赏
  • 举报
回复
namespace WebApplication4
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void dd()
{

SqlConnection cnn=new SqlConnection("server=localhost;database=northwind;uid=sa;pwd=sa");
string str="select * from ss";
SqlCommand cmd=new SqlCommand(str,cnn);
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
da.Fill(ds);
ds.Tables[0].DefaultView.Sort=ViewState["soft"].ToString();
this.DataGrid1.DataSource=ds.Tables[0].DefaultView;
this.DataGrid1.DataBind();

}
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
ViewState["soft"]="";
this.dd();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
this.DataGrid1.EditItemIndex=-1;
this.dd();
}

private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
ViewState["soft"]=e.SortExpression;
this.dd();
}

private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
this.dd();
}

private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=-1;
this.dd();

}

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strid=e.Item.Cells[0].Text;
string strn=((TextBox)(e.Item.Cells[1].Controls[1])).Text;
string stra=((TextBox)(e.Item.Cells[2].Controls[1])).Text;
string strx=((TextBox)(e.Item.Cells[3].Controls[1])).Text;


this.DataGrid1.EditItemIndex=-1;
this.dd();
}
}
}
先看看这吧

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧