现像描述:
编译器错误信息: CS0117: “ASP.upload_aspx”并不包含“DataList1_DeleteCommand”的定义
源错误:
|
原因: vs.net 2003事件是在.cs里用代码加上去的,迁移后vs.net 2005后,代码没有相应的自动改过来。
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataList1.DeleteCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_DeleteCommand);
this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound);
}
#endregion
private void DataList1_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
更新到vs.net 2005后,事件是写在aspx里的,对于丢失的事件
1.可以删掉vs.net 2003时代自动生成的那一整段。
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataList1.DeleteCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_DeleteCommand);
this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound);
}
#endregion
2.在IDE中或是aspx中确定事件指定过了。
3.在cs中把private 改成protected或是public
protected void DataList1_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
*因为只有public 和protected的可以在Aspx里使用。