У меня есть GridView, который постоянно восстанавливается с помощью таймера и находится в панели обновления, поэтому страница не обновляется постоянно (в каждой строке есть последовательность обратного отсчета, поэтому сетке необходимо постоянно обновляться)
Внутри gridview у меня есть кнопка изображения с методом OnClick. Ранее, чтобы запустить метод OnClick, я должен убедиться, что gridView не находится в UpdatePanel, и что привязка данных загрузки страницы для gridView была в «If Not IsPostBack».
Несмотря на то, что с таймером я не могу привязать вид сетки к "If Not IsPostBack", он должен быть в UpdatePanel.
Есть ли способ использовать UpdatePanel и «If Not IsPostBack» и при этом вызывать метод OnClick?
Спасибо
Вот код, если мое объяснение не имело полного смысла:
UpdatePanel / Таймер / GridView
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Timer ID="timerCountDown" runat="server" Interval="1000" OnTick="timerCountDown_Tick"></asp:Timer>
<asp:GridView ID="gridBuildQueue" runat="server" AutoGenerateColumns="False"
GridLines="none" ShowFooter="false" ShowHeader="false" Width="100%">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton runat="server" ID="cmdCancelBuild" ImageUrl="~/images/cancel.jpg" OnClick="ImageButton_Click"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
Метод таймера OnTick:
Protected Sub timerCountdown_Tick(ByVal sender As Object, ByVal e As EventArgs)
Me.gridBuildQueue.DataBind()
End Sub
Метод ImageButton_Click (который в настоящее время никогда не вызывается):
Protected Sub ImageButton_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
Dim imageButton As ImageButton = CType(sender, ImageButton)
Dim row As GridViewRow = CType(imageButton.NamingContainer, GridViewRow)
Dim button As ImageButton = DirectCast(row.FindControl("cmdCancelBuild"), ImageButton)
etc...
End Sub