我有一個.net 4 asp.net網站。在列表視圖的每個「單元格」中都有一個複選框的列表視圖。我想附加一些javascript到這些複選框,當複選框被選中/取消選中時,它會改變teh asp:tablecell的顏色。 listview綁定到一個集合。asp:新列表查看javascript問題
我不想在每次檢查更改時做回發,因爲可能會有相當多的複選框發生更改。
我採取了錯誤的方法或將JavaScript的一個很好的方法,如果是的話,有人可以幫助JavaScript。 感謝
我有一個.net 4 asp.net網站。在列表視圖的每個「單元格」中都有一個複選框的列表視圖。我想附加一些javascript到這些複選框,當複選框被選中/取消選中時,它會改變teh asp:tablecell的顏色。 listview綁定到一個集合。asp:新列表查看javascript問題
我不想在每次檢查更改時做回發,因爲可能會有相當多的複選框發生更改。
我採取了錯誤的方法或將JavaScript的一個很好的方法,如果是的話,有人可以幫助JavaScript。 感謝
我這樣做在ListView的ItemDataBound事件。假設你有以下的JavaScript函數:
function changeClass(checkBoxId, containerId) {
var checkBox = document.getElementById(checkBoxId);
var container = document.getElementById(containerId);
if(checkBox.checked == true) container.style.backgroundColor = "#AAA";
else container.style.backgroundColor = "#FFF";
}
然後,您可以在使用的ItemDataBound喜歡的FindControl這樣:
protected void ListView1_ItemDataBound(object sender, EventArgs e)
{
var checkBox = e.Item.FindControl("nameOfCheckBox");
var container = e.Item.FindControl("nameOfTableCell");
checkBox.Attributes["onclick"] = "javascript:changeClass('"
+ checkBox.ClientID + "','"
+ container.ClientID + "');";
}
在服務器端,您可以附加JavaScript事件的控制,以attributes..property
像下面//
seversidecontrolID.Attributes.Add("onclick","Javascript:
methodName(this);")
感謝那個...我仍然有在給ASP的一個問題:表格一個ID。我試過這樣的ID ='<%#databinder.eval(container.dataitem,「ID」)%>'。 – jvcoach23 2010-11-12 16:20:23
您是否必須爲表格提供這樣一個特定的ID?我的解決方案適用於表格單元格的ID爲「TableCell1」的情況。 – 2010-11-12 16:22:42
感謝您的幫助..我想出了我做錯了什麼。我需要使複選框爲2個狀態,但是這讓我走了。謝謝 – jvcoach23 2010-11-12 16:36:02