Asp.net CommandButton事件未触发
我正在从datatable填充一个html表,每个datatable行的每个表行中都有一个edit按钮 我正在代码中添加编辑按钮,如下所示:Asp.net CommandButton事件未触发,asp.net,visual-studio-2010,Asp.net,Visual Studio 2010,我正在从datatable填充一个html表,每个datatable行的每个表行中都有一个edit按钮 我正在代码中添加编辑按钮,如下所示: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (UserName != null && UserName != "") {
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (UserName != null && UserName != "")
{
hUserName.Value = UserName;
}
else
if (hUserName.Value != "")
UserName = hUserName.Value;
ShowTrainingEntry();
ShowUserTraining(); <-------------- this method populates table
hTID.Value = TrainingID.ToString();
}
}
public void ShowUserTraining()
{
....
dTotalTrainingHours += ShowTrainingInPeriod(dv);
....
}
protected decimal ShowTrainingInPeriod(DataView dv)
{
....
foreach (DataRowView rowView in dv)
{
....
Button bEdit = new Button();
int iTID = Convert.ToInt32(dr["ID"].ToString());
bEdit.Text = "Edit";
bEdit.ID = "btnEdit_" + iTID.ToString();
bEdit.CommandName = "Edit";
bEdit.CommandArgument = iTID.ToString();
bEdit.Command += new CommandEventHandler(btnEdit_Click);
....
}
....
}
public void btnEdit_Click(object sender, CommandEventArgs e)
{
clsLog.WriteLog("btnEdit_Click fired.");
clsLog.WriteLog("\t" + e.CommandName);
clsLog.WriteLog("\t" + e.CommandArgument.ToString());
UserName = hUserName.Value;
TrainingID = Convert.ToInt32(e.CommandArgument);
ShowTrainingEntry();
ShowUserTraining();
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
如果(用户名!=null&&UserName!=“”)
{
Value=用户名;
}
其他的
if(hUserName.Value!=“”)
UserName=hUserName.Value;
showtrainingtry();
ShowUserTraining();尝试执行事件注册
btnEdit_Click.Click += new EventHandler(this.btnEdit_Click);
使用GridView。它已经内置了所有功能。我们可以查看HTML表吗?我猜按钮没有在服务器端运行。(runat=“server”
)无法将GridView用于此应用程序。原始应用程序是经典的ASP,并且有空格分隔期间(年)管理层希望保留哪一行。从技术上讲,我可以使用gridview,但在时段之间插入空格的编程将是一场噩梦!我必须在数据绑定事件期间捕获每一行,并在时段之间插入“空白”行。在任何情况下,commandbutton方法都应该有效。至于runat=“server”:不是代码创建按钮的选项。好的。我重新发布并使用了gridview,并在RowDataBoundevent中添加了额外的行。但是,现在gridview索引都乱了,编辑功能失败,因为它没有正确的索引。有没有办法更正此问题?btnEdit\u Click是一个方法,而不是一个对象。
btnEdit_Click.Click += new EventHandler(this.btnEdit_Click);