GridView не рендерится внутри UpdatePanel - PullRequest
0 голосов
/ 11 октября 2019

У меня возникла проблема, когда я пытаюсь отобразить 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.

Ответы [ 3 ]

0 голосов
/ 11 октября 2019
I have tried it is working fine. This is the sample code.


<form id="form1" runat="server">
     <asp:ScriptManager ID="scp1" runat="server">
     </asp:ScriptManager>
        <asp:UpdatePanel ID="upMain" runat="server">
            <ContentTemplate>
                <asp:Panel id="pnl1" runat="server">
                    <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>
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </form>
0 голосов
/ 11 октября 2019

Я исправил это. В конце это был неправильно закрытый элемент div, вызывающий проблемы. Я потерял рассудок из-за этого.

0 голосов
/ 11 октября 2019

Элемент управления ScriptManager должен быть верхним из всех элементов управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...