2013-05-16 100 views
0

我有一个中继器,我已经包含在更新面板中,我有按钮和中继器外的下拉列表。我不希望每次点击按钮或在下拉列表中更改某些内容时都加载页面。 我有我的代码如下。我有两个问题,我不能解决:asp.net更新面板不触发

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> 

任何一个可以点我对这个

+0

每个SI无论你使用更新面板或其他任何东西,在asp.net中的后面的回复必须触发Page_Load事件,这是asp.net的正常行为 – Adam

回答

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>