2011-10-08 64 views
0

我有一個頁面上有一個ASP.NET的UpdatePanel。 UpdatePanel包含一箇中繼器,在中繼器內是一個命令按鈕。 (請參閱下面的代碼示例)asp.net更新面板捕獲按鈕點擊

當我第一次點擊按鈕時,沒有任何反應。但是,第二次點擊同一個按鈕時,我得到了我期望觸發的事件。儘管我確信有一個簡單的解釋,但我對此感到不知所措。任何意見將是有益的。

<!-- Drivers Table --> 
        <asp:UpdatePanel runat="server" ID="DriverUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
         <ContentTemplate>  
          <asp:HiddenField runat="server" ID="DriverErrors" /> 
          <asp:Repeater ID="DriverRepeater" runat="server" OnItemDataBound="DriverRepeater_ItemDataBound" OnItemCommand="DriverRepeater_ItemCommand"> 
           <HeaderTemplate> 
            <table cellspacing="0" class="section-table"> 
             <tr> 
              <td class="bg_mid" colspan="7"><img src="/images/sections/drivers.png" alt="Drivers" /></td> 
             </tr> 
             <tr> 
              <td class="text_1 left-cell">#</td> 
              <td class="text_1">Name</td> 
              <td class="text_1">Date Of Birth</td> 
              <td class="text_1">Gender</td> 
              <td class="text_1">License #</td> 
              <td class="text_1">Relationship</td> 
              <td class="text_1" align="right">&nbsp;</td> 
             </tr> 
           </HeaderTemplate> 
           <ItemTemplate> 
             <tr id="DriverRow" runat="server"> 
              <td class="text_2 required left-cell"><asp:Label ID="DriverNumber" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "DriverNumber")%>'></asp:Label></td> 
              <td class="text_2 required"><asp:Label ID="DriverName" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "FirstName")%>'></asp:Label></td> 
              <td class="text_2 required"><asp:Label ID="BirthDate" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "BirthDate")%>'></asp:Label></td> 
              <td class="text_2 required"><asp:Label ID="Gender" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Gender").ToString() == "F" ? "Female" : "Male" %>'></asp:Label></td> 
              <td class="text_2 required"><asp:Label ID="DriversLicenseNumber" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "LicenseInformation.DriversLicenseNumber")%>'></asp:Label></td> 
              <td class="text_2 required"><asp:Label ID="RelationshipToApplicant" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "RelationshipToApplicant")%>'></asp:Label></td> 
              <td class="text_2 right-cell" align="right"><asp:ImageButton runat="server" ID="DriverEditButton" 
               ImageUrl="/images/edit.jpg" AlternateText="Edit" CommandName="Edit" CausesValidation="false" /></td> 
             </tr> 
           </ItemTemplate> 
           <FooterTemplate> 
            </table> 
           </FooterTemplate> 
          </asp:Repeater> 
         </ContentTemplate> 
        </asp:UpdatePanel> 
+0

我剛剛注意到的另一件事。它是渲染後的第二次點擊。因此,如果我在任何時候都在面板上調用更新,則需要再次點擊兩次才能觸發事件。 –

+0

如果將updatemode更改爲Always,那麼始終會引發您期望的事件?頁面上是否有其他UpdatePanel? –

+0

我試着將它改爲Always,但是實際上在調用hte後端時會拋出Update()面板的錯誤。該頁面上有多個更新面板。 –

回答

0

使UpdatePanel Mode="Conditional"enableviewstate="true" 你不需要定義觸發和你的工作沒有它完成。

+0

謝謝,我會試試看,看看它是否有幫助 –

+0

不,在這種情況下沒有幫助 –

相關問題