2013-06-28 36 views
0

我有一個UpdatePanel的ASP.NET表單。我有兩個爲UpdatePanel定義的AsyncPostBackTriggers;兩者都是按鈕,它們都做同樣的事情(一個是在表單的頂部,另一個在底部形態),觸發事件名稱爲「點擊」兩種。ASP.NET爲什麼認爲我的控件不存在?

只要我加載頁面,我得到的錯誤「ID爲‘btnSaveChangesBtm’無法找到對的UpdatePanel‘updIncidentDetails’觸發的控制。」此錯誤是沒有意義的,因爲我看這裏面的控制「btnSaveChangesBtm」,一清二楚。

這裏有標記的相關片段,萬一有人看到了我丟失的東西。我在這一個上虧本。

<asp:UpdatePanel ID="updIncidentDetails" runat="server"> 
    <ContentTemplate> 
    <div id="pnlIncidentDetails" runat="server" class="formPanel"> 
     <h2>Incident Details</h2> 
     <div id="saveButton" style="float: right; margin-right: 100px; display: none;"> 
     <asp:Button ID="btnSaveChanges" runat="server" OnClientClick="return valEditedFields();" OnClick="btnSubmit_Click" Text="Save Changes" /> 
     <asp:Button ID="btnCancel" runat="server" OnClientClick="return hideEditFields(true);" OnClick="btnCancel_Click" Text="Cancel Changes" /> 
     </div> 

     ... 

     <div id="saveButtonBtm" style="float: right; display: none;"> 
     <br /> 
     <asp:Button ID="btnSaveChangesBtm" runat="server" OnClientClick="return valEditedFields();" OnClick="btnSubmit_Click" Text="Save Changes" /> 
     <asp:Button ID="btnCancelBtm" runat="server" OnClientClick="return hideEditFields(true);" OnClick="btnCancel_Click" Text="Cancel Changes" /> 
     <br /> 
     </div> 
    </div> 
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btnSaveChanges" EventName="Click" /> 
    <asp:AsyncPostBackTrigger ControlID="btnSaveChangesBtm" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

我首先想到這是因爲我有「display:none;」設置了「saveButtonBtm」 <DIV>,但後來我意識到同樣的事情被設置在一個在頂部(「saveButton」),所以我不認爲這是它。還有其他建議嗎?

以下是錯誤的圖像: Trigger Control error message

+1

我複製你的代碼,並把它轉變爲網絡應用上VS2012,創建空的事件處理程序兩個按鈕和跑它沒有問題的IE10,Firefox和Chrome。你的事件處理程序正在做什麼?你可以發佈代碼隱藏嗎? –

+0

這應該工作。恐怕問題應該是其他地方。 –

+0

這是給我的頁面加載錯誤;我甚至沒有能夠運行事件處理程序(順便說一下,這兩個保存按鈕都是同一個,應該可以工作,對嗎?),我會添加一個屏幕抓取錯誤所以你可以看到它。 – timbck2

回答

0

問題是因爲按鈕是一個AccordionPanel內部的 - 我想這已經使之在UpdatePanel無法找到他們。我將它們移到面板之外,它都可以工作。

相關問題