我開發在asp.net網站的方法「getElementByTagName」。 我用一個用RadioButton編輯的GridView。這是GridView的代碼。隨着這個RadioButton GridView從數據庫中的表中獲取值,它包含3列。UncaughtTypeError:不能叫空
<asp:GridView ID="creditGridView" runat="server" Width="500" Height="210px" GridLines="None" CssClass="classGridView" >
<Columns>
<asp:TemplateField HeaderText="Pick One">
<ItemTemplate>
<asp:RadioButton ID="radBatId" runat="server" onclick= "javascript:CheckOtherIsCheckedByGVID(this);" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我使用JavaScript來實現功能,在GridView中一次選擇一個RadioButton。這是JavaScript代碼:
function CheckOtherIsCheckedByGVID(rdBtn) {
var currentRdBtnId = rdBtn.id;
alert(currentRdBtnId);
var parent = document.getElementById("<%=creditGridView.ClientID%>");
var items = parent.getElementsByTagName("input");
for (i = 0; i < items.length; i++) {
if (items[i].id != currentRdBtnId && items[i].type == "radio") {
if (items[i].checked) {
items[i].checked = false;
}
}
else {
document.getElementById("<%=radioBtnIndex.ClientID%>").value = i;
}
}
}
當我把這個函數放在包含GridView的同一頁面時,它工作正常。當我把這個功能在一個單獨的JavaScript文件則顯示
UncaughtTypeError:Cannot call method 'getElementByTagName' of null
這裏變量父所獲得的價值null
錯誤。即語句document.getElementById("<%=creditGridView.ClientID%>");
在函數不在同一頁中時沒有獲取GridView ID。任何人都可以幫助我解決這個問題,或給我一個替代方式來訪問GridView ID?
你有兩個問題:1,文檔具有的getElementsByTagName方法 2.你的父母變量爲空。一次解決它們兩個,然後設置好。您可以通過在瀏覽器中查看生成的HTML源代碼來解決這些問題。 – Sanchit
感謝Sanchit.ur的指導是非常有價值的。我得到了解決方案。 – samiaj
不客氣。你至少可以投我的評論:P – Sanchit