我有一個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」),所以我不認爲這是它。還有其他建議嗎?
以下是錯誤的圖像:
我複製你的代碼,並把它轉變爲網絡應用上VS2012,創建空的事件處理程序兩個按鈕和跑它沒有問題的IE10,Firefox和Chrome。你的事件處理程序正在做什麼?你可以發佈代碼隱藏嗎? –
這應該工作。恐怕問題應該是其他地方。 –
這是給我的頁面加載錯誤;我甚至沒有能夠運行事件處理程序(順便說一下,這兩個保存按鈕都是同一個,應該可以工作,對嗎?),我會添加一個屏幕抓取錯誤所以你可以看到它。 – timbck2