我正在構建一個價格報價數據表(認爲股票報價表)需要每5秒刷新一次。每行大約有一個股票的一些數據在幾列和每一行的最後一列有LinkButton
看到關於特定股票的更多信息。一切正常,但LinkButton
。整個表嵌套在UpdatePanel
我認爲這是導致該問題的內部。我在這個主題上看到了相當多的帖子,但沒有一篇適合我。LinkButton在UpdatePanel中不起作用
這裏是我的.aspx代碼:
<asp:ScriptManager ID="ScriptManager" runat="server" />
<asp:Timer ID="Timer" OnTick="Timer_Tick" runat="server" Interval="5000" />
<div id="itemList">
<asp:UpdatePanel ID="itemPanel" UpdateMode="Conditional" ChildrenAsTriggers="false" runat="server">
<Triggers><asp:AsyncPostBackTrigger ControlID="Timer" /></Triggers>
<ContentTemplate>
<asp:Panel ID="Panel_ItemList" runat="server" width="100%"></asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
和我.aspx.cs代碼:
protected void Page_Load(object sender, EventArgs e)
{
...
if (!Page.IsPostBack)
{
updateItemsTable();
}
}
protected void LinkButton_Click(object sender, CommandEventArgs e)
{
Panel_LoginAlert.Visible = true; // <-- THIS IS NOT FIRING!!
}
protected void Timer_Tick(object sender, EventArgs e)
{
updateItemsTable();
}
protected void updateItemsTable()
{
//... Query my DB
if (rdr.HasRows)
{
Panel_ItemList.Controls.Add(new LiteralControl("<!-- ItemList Panel -->\n"));
while (rdr.Read())
{
LinkButton lb = new LinkButton();
lb.Text = "Item";
lb.ID = "lbItem_" + strDBitemID;
lb.CommandName = strDBitemName;
lb.CommandArgument = strDBitemID;
lb.Command += new CommandEventHandler(LinkButton_Click);
Panel_ItemList.Controls.Add(lb);
}
Panel_ItemList.Controls.Add(new LiteralControl("<!-- END ItemList Panel -->\n"));
}
//...
conn.Close();
}
所以頁面加載罰款和計時器重新加載表罰款,但LinkButtons
做不開火CommandEventHandler
。這工作正常,如果我刪除計時器。
事情我已經嘗試:
- 我嘗試使用按鈕,而不是了LinkButton但這並沒有幫助。
- 我讀了幾十個帖子說要給LinkButton控件添加一個ID,但這也沒有幫助。
如果你試圖掩蓋使用鏈接按鈕面板,你可能只是這樣做在JavaScript。 –