我有一個從數據庫自動填寫的只讀表單。我有幾個有真/假值的字段,並希望它們顯示爲空或檢查的複選框。我可以數據綁定複選框控件並將其禁用,但是它會顯示爲灰色。有沒有一種簡單的方法來改變它,使其顯示在正常的,易於閱讀的大膽但仍然被禁用?如果不是,那麼做到這一點的最好方法是什麼?我應該使用圖像嗎?如何在只讀表單上顯示覆選框(ASP.NET)
回答
有趣的問題!
這裏只有一個問題我可以用圖片來代替正常的複選框看,這就是如何活躍複選框將禁用(基於圖像的)複選框不同。所以,如果你走圖像路線,你可能會想所有複選框。 :)
您可以使用以下jQuery方法(迄今爲止只在Chrome和IE 9中測試過)有效地禁用任何複選框。
$('.readonly:checkbox').click(function(e) {
e.preventDefault();
});
這將使「readonly」類「禁用」任何複選框。
或者,您可以使用JavaScript函數內聯(albiet不推薦使用,因爲它會增加混亂和混淆):
<input type="checkbox" onclick="event.preventDefault();" />
你會用的原因「的preventDefault()」而不是「返回false」是因爲返回false會停止傳播。這意味着您的點擊事件不會冒泡到父元素。這可能會導致其他代碼出現問題......但這不太可能。
此外,像巴拉R提到的,你不能依靠這些限制來工作。你的服務器端代碼應該知道這些值是隻讀的,並且不要更新它們。
這裏的jsfiddle例如:http://jsfiddle.net/xixionia/3rXCB/
我希望這是有幫助的! :)
你可以用javascript做這樣的事情,並將它用於複選框的onclick處理程序。
function makeMeReadonly(checkbox){
checkbox.checked = !checkbox.checked;
}
和
<asp:CheckBox id="checkbox1" onclick="makeMeReadonly(this)" />
或
<asp:CheckBox id="checkbox1" onclick="this.checked = !this.checked" />
如果你想讓它內嵌
。
但是你不應該依賴這個安全性,因爲當javascript不可用和/或客戶端代碼不是很難解決客戶端代碼限制時,它會是一個常規復選框,但在你的情況下,因爲你有一個只讀視圖,我不認爲你有任何邏輯來保存更改。
你也可以這樣。
<asp:CheckBox id="checkbox1" Text="Custom" onclick="javascript: return false;" />
這會使它作爲
<input type="checkbox"
checked onclick="javascript: return false;">Custom</input>
我喜歡這個解決方案,但是我在代碼背後做了。 (myControl as CheckBox).Attributes.Add(「onclick」,「javascript:return false;」); – Matt 2013-09-02 12:02:09
我剛剛遇到同樣的問題,並通過複選框上的OnClick事件修復它。在事件處理程序中,.Checked狀態被設置爲它應該顯示的值。
private void chkBox_CheckStateChanged(object sender, EventArgs e)
{
chkBox.Checked = boolDatabasevalue;
return;
}
工程很好,用戶可以點擊複選框,但複選標記不會改變。
唯一的問題是指示焦點的輕微邊框陰影。但是,正如OP所期待的那樣,複選標記是易於閱讀的大膽。
注意:這是C#,但在Asp.Net中應該類似地工作。
- 1. 如何在asp.net的網頁表單顯示覆選框的GridView
- 2. Asp.Net MVC4顯示覆選框列表
- 3. 如何使用Delphi在Windows下顯示「灰顯」只讀複選框主題
- 4. 如何在ASP.NET表單上創建複選框?
- 5. Django表單:複選框無值顯示
- 6. 如何使用django複選框顯示覆選框列表?
- 7. 在選中的複選框上只顯示一次提醒
- 8. 如何創建只讀複選框MVC?
- 9. Apex5.0,如何使複選框只讀
- 10. 如何使複選框只讀
- 11. 如何在強類型複選框上設置只讀屬性?
- 12. 在表單中顯示基於複選框的表單
- 13. ASP.NET表單顯示的行和列的變量複選框上輸入
- 14. 複選框只讀屬性
- 15. 如何在Ext.grid.GridPanel中顯示覆選框?
- 16. 如何在複選框中顯示Tickmark?
- 17. 如何在jquery.datatables中顯示覆選框?
- 18. 如何使用asp.net只讀Excel表單?
- 19. jstree:複選框只顯示jquery.jstree.js
- 20. 複選框始終只顯示「開」
- 21. 如何修復iOS設備上顯示的複選框和單選按鈕?
- 22. 只在Kendo Treeview上顯示子節點的複選框
- 23. ASP.net MVC:JQGrid - 布爾列顯示覆選框
- 24. 複選框不會顯示在鉻上
- 25. 在複選框上顯示jQuery textarea tick
- 26. 在複選框上顯示div剔
- 27. 如何驗證只有複選框/按鈕/選擇的表單?
- 28. 如何在警示框上顯示單選按鈕
- 29. 如何使列表視圖中的複選框只讀c#?
- 30. 多選複選框顯示錶記錄
謝謝大家! – Sara 2011-05-07 17:46:33