簡體   English   中英

帶計時器的updatepanel中的按鈕不起作用

[英]Buttons in updatepanel with timer doesn't work

我有這個代碼。 當我單擊任何按鈕都不起作用。 我希望所有按鈕都運行EventHandler(Button1_Click)。 我曾嘗試使用多個AsyncPostBackTrigger,但是計時器方法卡住了。

public DataTable data1 = new DataTable();
protected void Timer1_Tick(object sender, EventArgs e){
        MySqlConnection con = openconnection();
        MySqlDataAdapter sda1 = new MySqlDataAdapter("SELECT id FROM orderprogress WHERE Order=0;", con);
        sda1.Fill(data1);

        for (int i = 0; i < data1.Rows.Count; i++){
            TableRow row = new TableRow();
            TableCell cell1 = new TableCell();
            cell1.Text = data1.Rows[i][0].ToString();
            row.Cells.Add(cell1);
            Table1.Rows.Add(row);
            insertbuttons(i);
            }
}
void insertbuttons(int i){
        Button btn = new Button();
        btn.ID = data1.Rows[i][0].ToString();
        btn.Text = "Apply!";
        btn.Click += new EventHandler(Button1_Click);
        TableRow row1 = new TableRow();
        TableCell cell2 = new TableCell();
        row1.Cells.Add(cell2);
        Table1.Rows[i].Cells[1].Controls.Add(btn);
    }
protected void Button1_Click(object sender, EventArgs e){
        orderidlb.Text = "button pressed";
    }

這是我使用的asp代碼:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="10"></asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" AutoPostBack="True" UpdateMode="Conditional" ChildrenAsTriggers="true">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
    </Triggers>
    <ContentTemplate>
            <asp:Table ID="Table1" runat="server">
                <asp:TableRow>
                    <asp:TableCell>ID</asp:TableCell>
                    <asp:TableCell>test BTN!</asp:TableCell>
                </asp:TableRow>
            </asp:Table>
      </ContentTemplate>
</asp:UpdatePanel>

有點晚了,但到目前為止,我發現直到定時器的間隔完成后按鈕才會觸發,但是如果您的間隔太短,則間隔會在按鈕完全觸發之前再次觸發,從而使按鈕失效按鈕單擊。 您的計時器每1/100秒就會滴答一聲,太快了。 嘗試增加到1秒(Interval =“ 1000”),我想您會發現您的按鈕有效。 如果將間隔增加得太遠(例如10秒),則將單擊該按鈕,似乎什么也不會發生,但是大約10秒后該命令將觸發。 行為怪異,我仍在嘗試找到即時解決方案,但這是我在此過程中得到的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM