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 に答える