我有一個複雜的頁面,但是我創建了一個簡單的ASP.NET頁面。我已經Telerik的RadAsyncUpload控制和UpdatePanel內的按鈕,如圖所示:
<asp:UpdatePanel ID="_updatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
...
<telerik:RadAsyncUpload ID="fileUpload" runat="server" MaxFileInputsCount="1" OnClientFilesSelected="fileUpload_ClientFilesSelected" /><br />
<asp:Button ID="_saveNewFileButton" runat="server" OnClick="_saveNewFileButton_Click"
Text="Save"/>
</ContentTemplate>
</asp:UpdatePanel>
當一個文件被選擇我要禁用_saveNewFileButton和更改文本「請等待附件上傳......」但我可以似乎沒有得到JavaScript中的按鈕引用:
var FilesUpdateInterval = null;
//Handles client side FilesSelected event for _newFileUploadButton.
function fileUpload_ClientFilesSelected(sender, args) {
//disable the click event for submit button during upload
var submitButton = $find('<%= _saveNewFileButton.ClientID %>');
submitButton.set_text('Please Wait for Attachment Upload...')
submitButton.set_readOnly(true);
if (FilesUpdateInterval == null) {
FilesUpdateInterval = setInterval(function() { FileCheckForUploadCompletion(); }, 500);
}
}
我收到submitButton爲null錯誤。我試着把這個javascript代碼放在updatepanel和ContentTemplate裏面,得到了相同的結果。很明顯,無論我做什麼都是錯誤的。如何獲取JavaScript中的updatepanel中的控件?
編輯:我發現$找到工程只有telerik控件。所以,我不得不使用document.getElementById函數或者像Steve指定的那樣使用JQuery。另外,我必須使用RegisterClientScriptBlock。我會用史蒂夫的建議進行測試,然後接受答案。
感謝您的詳細解釋。我的不好,我複製從RadButton的不同位置粘貼,並預計它的工作,沒有思考。 – 2014-12-04 14:53:23