0

我正在从数据表中填充一个 html 表,每个数据表行的每个表行中都有一个编辑按钮。

我在代码中添加编辑按钮如下:

    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();
    }

根据要求 - HTML 表格:

<asp:Table ID="tblMain" runat="server" Width="900" CellPadding="3" CellSpacing="0" CssClass="noborder">
</asp:Table>        

btnEdit_Click 没有被触发(没有日志条目)。

我已经对此进行了几个小时的研究,我发现唯一一致的是事件必须在 Page_Load 期间连接到按钮,我相信这是正确发生的。

任何帮助将不胜感激。

谢谢,约翰

4

1 回答 1

0

尝试做事件注册

btnEdit_Click.Click += new EventHandler(this.btnEdit_Click);
于 2012-11-09T14:22:03.247 回答