动态添加按钮不会在第一次单击时起作用

时间:2018-02-05 06:30:13

标签: c# asp.net

我知道有很多类似于我的问题,但没有一个问题解决了我的问题。

理念: 我有两个页面,第一个是登录页面,另一个是显示登录人员出勤,在考勤页面我有两个标签,一个用于员工本身,另一个是动态显示员工的姓名在他的下方,第二个选项卡显示为包含员工姓名的按钮,当您点击它时,它会显示该人员的出勤率。

问题: 当我点击按钮它刷新页面而不做任何事情然后当我再次点击它它工作并调用我需要的方法,所以我的问题是为什么它从第一次点击不起作用?

解决方案尝试: 我用这种方式在代码中创建了按钮:

                   var button = new Button
                    {
                         ID = "Button " + a,
                     CommandArgument = myEmp[a].ToString(), //id of employee
                         Text = GetName(myEmp[a]), // name of employee
                        CausesValidation = false
                    };
                    button.Command += GetINAndOutManagers; //method on click
                var cell = new HtmlTableCell();
                var row = new HtmlTableRow();
                    cell.Controls.Add(button);
                    row.Cells.Add(cell);
       myTable.Rows.Add(row); // just for organization i put them in a table 

并在我的html页面中:

<table id="myTable" runat="server" class="table table-bordered"></table>

作为占位符。

1 - 我的页面中有JavaScript和jquery,但即使我删除它也无效。

2 - 我尝试使用html按钮代替后面的代码仍然无效。

3 - 我尝试将其放在页面初始化和页面初始化但没有结果。

当我把按钮放在主页面而不是内容页面时我唯一一次工作我不知道为什么,我注意到当我第一次点击按钮时它不认为它是一个回帖

任何想法?

修改

所以为了让我更容易删除我的页面加载方法中的所有内容 在我的页面init方法中,我只有这个代码。

    protected void Page_Init(object sender, EventArgs e)
    {
        Button btn = new Button();
        pnlInfo.Controls.Add(btn);
        btn.ID = "Button" + 1.ToString();
        btn.Text = "Test button" + 1.ToString();
        btn.Click += new EventHandler(btnSubmit_click);
    }

和点击方法是这样的:

 private void btnSubmit_click(object sender, EventArgs e)

{

System.Diagnostics.Debug.Write("**************in*****************");

}

所以我只登录,然后它会将我重定向到第二页,其中只包含一个按钮,只在我的页面init方法中看到,没有标签没有任何内容

在我的HTML中就是这个

<asp:Panel ID="pnlInfo" runat="server">
</asp:Panel>

有一些css和div就是全部,而且从第一次点击开始它仍然不起作用!

1 个答案:

答案 0 :(得分:0)

哦,天哪,我找到了解决方案

在我的登录页面中,我使用此代码转移到我的第二页:

Server.Transfer("About.aspx", true);

所以我的按钮不起作用,但当我将代码更改为:

Response.Redirect("About.aspx");
一切顺利! 我是一名asp.net初学者,所以我不知道为什么会这样解决 我的问题。但是感谢大家,希望这也能帮到别人。