0

更新パネル内に含めたリピーターがあり、リピーターの外にボタンとドロップダウン リストがあります。ボタンをクリックするたびに、またはドロップダウン リストで何かを変更するたびにページをロードしたくありません。私は以下のコードを持っています。解決できない2つの問題があります:

1) 更新パネルとトリガー (btn15MIN_Click) を使用してもコントロールが Page_Load イベントに移動するため、更新パネルのコードを記述しているときに何か問題があると思います。

2) dropownlist の値を変更した後、リピーターを更新するのに時間がかかります。

<div class="MainGrid">
        <asp:Timer ID="RefreshTimer" runat="server" OnTick="RefreshTimer_Tick" Enabled="True">
        </asp:Timer>
        <div>
            <table width="100%" cellpadding="5">
                <tr>
                    <td>
                        <div>
                            <asp:Label ID="lblEndDate" runat="server" Text="LastUpdatedDate:" Font-Bold="true"
                                CssClass="label" ForeColor="Black"></asp:Label>
                            <asp:Label ID="lblEndDateText" runat="server" CssClass="label" ForeColor="Black"></asp:Label>
                        </div>
                        <div>
                            <asp:Label ID="lblRefresh" runat="server" Text="Refresh Interval:" CssClass="label"
                                ForeColor="Black"></asp:Label>&nbsp&nbsp&nbsp
                            <asp:LinkButton ID="btn15MIN" runat="server" OnClick="btn15MIN_Click" Text="15MIN">
                            </asp:LinkButton>&nbsp
                            <asp:LinkButton ID="btn10MIN" runat="server" OnClick="btn10MIN_Click" Text="10MIN">
                            </asp:LinkButton>&nbsp
                            <asp:LinkButton ID="btn5MIN" runat="server" OnClick="btn5MIN_Click" Text="5MIN">
                            </asp:LinkButton>&nbsp
                            <asp:LinkButton ID="btn60SEC" runat="server" OnClick="btn60SEC_Click" Text="60SEC">
                            </asp:LinkButton>&nbsp
                            <asp:LinkButton ID="btn30SEC" runat="server" OnClick="btn30SEC_Click" Text="30SEC">
                            </asp:LinkButton>&nbsp
                            <asp:LinkButton ID="btnOFF" runat="server" OnClick="btnOFF_Click" Text="btnOFF">
                            </asp:LinkButton>
                        </div>
                        <asp:Panel ID="Panel2" runat="server">
                            <asp:Label ID="lblResultsDuration" runat="server" CssClass="label" ForeColor="Black">View Results since the last </asp:Label>
                            <asp:DropDownList ID="ddlDuration" OnSelectedIndexChanged="ddlDuration_SelectedIndexChanged"
                                runat="server">
                                <asp:ListItem Text="2" Value="2"></asp:ListItem>
                                <asp:ListItem Text="4" Value="4"></asp:ListItem>
                                <asp:ListItem Text="6" Value="6"></asp:ListItem>
                                <asp:ListItem Text="8" Value="8"></asp:ListItem>
                                <asp:ListItem Text="24" Value="24"></asp:ListItem>
                                <asp:ListItem Text="48" Value="48"></asp:ListItem>
                            </asp:DropDownList>
                            <asp:Label ID="lblResultsDuration1" runat="server" CssClass="label">  Hours </asp:Label>
                        </asp:Panel>
                        <asp:UpdatePanel ID="MainGridUpdatePanel" runat="server">
                            <Triggers>
                                <asp:PostBackTrigger ControlID="btn15MIN"  />
                            </Triggers>
                            <ContentTemplate>
                                <asp:Panel ID="pnlMonitorSummary" runat="server">
                                    <ul id="monitorGallery" class="gallery ui-helper-reset ui-helper-clearfix" style="margin-top: 5px;">
                                        <asp:Repeater ID="rptMonitorSummary" runat="server" OnItemDataBound="rptMonitorSummary_OnItemDataBound">
                                            <ItemTemplate>
                                                <li class="ui-widget-content ui-corner-tr">
                                                    <h5 class="ui-widget-header">
                                                        <%# Eval("Name").ToString().Length > 16 ? (Eval("Name") as string).Substring(0, 16) : Eval("Name")%>
                                                    </h5>
                                                    <div class="center">
                                                        <asp:Image Width="100px" ID="btnPerformanceImage" runat="server" Height="75px"></asp:Image>
                                                    </div>
                                                </li>
                                            </ItemTemplate>
                                        </asp:Repeater>
                                    </ul>
                                </asp:Panel>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </td>
                </tr>
            </table>
        </div>
        </div>

誰でもこれについて正しい方向に私を向けることができますか

4

1 に答える 1

1

asp.net に戻るすべての投稿は、更新パネルなどを何を使用しても Page_Load イベントをトリガーする必要があります。これは asp.net の通常の動作です。

また、選択したアイテムを変更したときに完全なポストバックが実行されないように、更新パネル内にドロップダウン リストを配置してみてください。

<asp:Panel ID="Panel2" runat="server">
                            <asp:Label ID="lblResultsDuration" runat="server" CssClass="label" ForeColor="Black">View Results since the last </asp:Label>
</asp:Panel>
     <asp:UpdatePanel ID="MainGridUpdatePanel" runat="server">
                            <Triggers>
                                <asp:PostBackTrigger ControlID="btn15MIN"  />
                                <asp:PostBackTrigger ControlID="ddlDuration"/>
                            </Triggers>

                            <ContentTemplate>
                            <asp:DropDownList ID="ddlDuration" OnSelectedIndexChanged="ddlDuration_SelectedIndexChanged"
                                runat="server">
                                <asp:ListItem Text="2" Value="2"></asp:ListItem>
                                <asp:ListItem Text="4" Value="4"></asp:ListItem>
                                <asp:ListItem Text="6" Value="6"></asp:ListItem>
                                <asp:ListItem Text="8" Value="8"></asp:ListItem>
                                <asp:ListItem Text="24" Value="24"></asp:ListItem>
                                <asp:ListItem Text="48" Value="48"></asp:ListItem>
                            </asp:DropDownList>
                            <asp:Label ID="lblResultsDuration1" runat="server" CssClass="label">  Hours </asp:Label>


                                <asp:Panel ID="pnlMonitorSummary" runat="server">
                                    <ul id="monitorGallery" class="gallery ui-helper-reset ui-helper-clearfix" style="margin-top: 5px;">
                                        <asp:Repeater ID="rptMonitorSummary" runat="server" OnItemDataBound="rptMonitorSummary_OnItemDataBound">
                                            <ItemTemplate>
                                                <li class="ui-widget-content ui-corner-tr">
                                                    <h5 class="ui-widget-header">
                                                        <%# Eval("Name").ToString().Length > 16 ? (Eval("Name") as string).Substring(0, 16) : Eval("Name")%>
                                                    </h5>
                                                    <div class="center">
                                                        <asp:Image Width="100px" ID="btnPerformanceImage" runat="server" Height="75px"></asp:Image>
                                                    </div>
                                                </li>
                                            </ItemTemplate>
                                        </asp:Repeater>
                                    </ul>
                                </asp:Panel>
                            </ContentTemplate>
                        </asp:UpdatePanel>
于 2013-05-16T16:05:46.123 に答える