一般信息:確認刪除彈出記錄計數
Aspx頁面包含一個Ascx用戶控件。在用戶控件中,Repeater包含在View中,包含在Multiview中。 Asp.Net 2.0框架/ C#
詳細說明:
我有一個轉發器(一個ASCX用戶控件中),它顯示的記錄,和第一列是一個複選框。如果選中,該行將被刪除。 在轉發器的外面,我有一個按鈕將刪除所有被檢查的行。
一切工作正常,但已被要求添加彈出式「確認刪除」消息,其中包括如果用戶在彈出窗口上單擊「確定」時將被刪除的記錄數。
類似於: 「您即將刪除8條記錄」。
目前我的按鈕看起來是這樣的:
<asp:Button ID="btnDeleteAllRecords" runat="server" Text="Delete all Checked Records" Onclick="btnDeleteAllRecords_Click" OnClientClick="javascript:GetCbCount();" />
我有這樣的javascript代碼塊:
<script type="text/javascript">
function GetCbCount()
{
var cb = document.getElementById("rptrVoicemail").getElementsByTageName("input");
var cbCount;
for(i = 0; i < cb.lenght; i++)
{
if(cb[i].type == "checkbox")
{
if(cb[i].checked)
{
cbCount = cbCount + 1;
}
}
}
return confirm('You are about to delete' + cbCount + 'records.');
}
</script>
當我點擊我的按鈕,我得到:
錯誤:「文件.getElementById(...)'爲空或不是對象 on this line:
var cb = document.getElementById("rptrVoicemail").getElementsByTageName("input");
爲什麼JS沒有看到我的轉發器?是因爲它埋在了MultiView中嗎?如何糾正JS,以便彈出窗口顯示消息中的記錄數量?
UPDATE: 我改變了腳本:
function GetCbCount(){
var inpt = document.getElementById("vmDiv");
var checkboxes = inpt.getElementsByTagName("input");
var cbCount;
for(i = 0; i<checkboxes.lenght;i++){
if (checkboxes[i].type == "checkbox" && checkboxes[i].checked){
cbCount = cbCount + 1;
}
}
return confirm('You are about to delete ' + cbCount + ' Voicemails.');
}
在函數中,行以'var cb = ...開頭'並在'var inpt = ...'的錯誤描述中。這是一個疏忽嗎? – 2010-11-11 20:54:44
嗨蒂姆,謝謝你指出。這是一個疏忽。我糾正了我的帖子。 – Doug 2010-11-11 21:07:20
你的按鈕旁邊的中繼器?如果是這樣,你可以使用DOM-Model來獲取他。另一個問題:您的Javascript位於頁面內部還是包含在內? – 2010-11-11 21:29:22