У меня возникла проблема, когда я пытаюсь отобразить GridView в UpdatePanel. Во-первых, исходные данные не отображаются при использовании GridView внутри него, а когда я удаляю UpdatePanel, данные отображаются и отображаются.
Второе, что я пытаюсь сделать, - это обновить сетку данных после вставкизапись через Ajax. Я пытаюсь использовать клик через JavaScript, чтобы сделать это, но пока безрезультатно. Это моя страница aspx:
<asp:Panel ID='pSearchParams' runat="server">
<asp:ObjectDataSource ID="historyDataSource" runat="server"
TypeName="DataSourceAdapters.DataSourceAdapter"
SelectMethod="GetData">
</asp:ObjectDataSource>
<form runat="server" id="x">
<asp:ScriptManager
ID="ToolkitScriptManager1" runat="server" >
</asp:ScriptManager>
<ajax:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" OnLoad="UpdatePanel2_Load">
<ContentTemplate>
<div id="triggerDiv" style="display:none;">
<asp:Button ID="triggerButton" CausesValidation="false" runat="server" Text="" />
<div>
<asp:GridView ID="GridViewHistory" CssClass="GridStyle"
runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" CellPadding="10"
DataSourceID="historyDataSource"
ForeColor="#333333">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="CalculationDate" HeaderText="Date" ReadOnly="True" SortExpression="CalculationDate" />
<asp:BoundField DataField="RoughId" HeaderText="Rough ID" ReadOnly="True" SortExpression="RoughId" />
</Columns>
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="triggerButton" EventName="Click" />
<asp:PostBackTrigger ControlID="GridViewHistory" />
</Triggers>
</ajax:UpdatePanel>
</form>
</asp:Panel>
и код:
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(triggerButton);
}
[WebMethod]
public static void InsertHistoryItem()
{
DataSourceAdapters.DataSourceAdapter adapter = new DataSourceAdapters.DataSourceAdapter();
adapter.Insert();
}
}
protected void UpdatePanel2_Load(object sender, EventArgs e)
{
stepcutCalculationHistoryDataSource.Select();
GridViewStepcutCalculationHistory.DataBind();
UpdatePanel2.Update();
}
Странно, я вижу, что UpdatePanel выполняется на вкладке сети DevTools, и ответбыть там, но он никогда не отображается в html.