the big ben | Bonjour,
J'essaie de changer le rendu d'une check box avec les css friendly adapter.
Je suis parvenu à écrire quelque chose qui fonctionne mais par contre je ne sais pas trop comment je pourrait faire pour permettre l'AutoPostBack?
Voici mon code actuel:
Code :
- using System;
- using System.Data;
- using System.Collections;
- using System.Configuration;
- using System.IO;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- namespace CSSFriendly
- {
- public class CheckBoxAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
- {
- protected override void Render(HtmlTextWriter writer)
- {
- CheckBox checkbox = this.Control as CheckBox;
- writer.Write(
- String.Format(@"
- <div class=""checkBoxes"">
- <input style=""display: none;"" class=""checkBox"" name=""{0}"" id=""{1}"" type=""checkbox"" {2}>
- <div id=""alt-{1}"" class=""checkBox{3}"" onclick=""checkInput(this,'{1}')""></div>
- </div> {4}",
- checkbox.ClientID.Replace('_','$'),
- checkbox.ClientID,
- (checkbox.Checked ? "checked='checked'" : "" ),
- (checkbox.Checked ? "" : "-default" ),
- checkbox.Text
- )
- );
- Page.ClientScript.RegisterForEventValidation(checkbox.UniqueID);
- }
- }
- }
|
Et un petit javascript qui va avec pour cocher:
Code :
- function checkInput(div, inputId) {
- var input = document.getElementById(inputId);
- if(input.checked) {
- div.className = "checkBox-default";
- input.checked = false;
- } else {
- div.className = "checkBox";
- input.checked = "checked";
- }
- }
|
|