Css Friendly adapter (WebControlAdapter)

Css Friendly adapter (WebControlAdapter) - C#/.NET managed - Programmation

Marsh Posté le 27-11-2007 à 14:54:50    

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 :
  1. using System;
  2. using System.Data;
  3. using System.Collections;
  4. using System.Configuration;
  5. using System.IO;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Web.UI.HtmlControls;
  12. namespace CSSFriendly
  13. {
  14. public class CheckBoxAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
  15. {
  16.  protected override void Render(HtmlTextWriter writer)
  17.         {
  18.             CheckBox checkbox = this.Control as CheckBox;           
  19.             writer.Write(
  20.                 String.Format(@"
  21.                     <div class=""checkBoxes"">
  22.                         <input style=""display: none;"" class=""checkBox"" name=""{0}"" id=""{1}"" type=""checkbox"" {2}>
  23.                         <div id=""alt-{1}"" class=""checkBox{3}"" onclick=""checkInput(this,'{1}')""></div>
  24.                     </div> {4}",
  25.                       checkbox.ClientID.Replace('_','$'),
  26.                       checkbox.ClientID,
  27.                       (checkbox.Checked ? "checked='checked'" : "" ),
  28.                       (checkbox.Checked ? "" : "-default" ),
  29.                       checkbox.Text
  30.                 )
  31.             );
  32.             Page.ClientScript.RegisterForEventValidation(checkbox.UniqueID);
  33.         }
  34. }
  35. }


 
Et un petit javascript qui va avec pour cocher:

Code :
  1. function checkInput(div, inputId) {
  2.     var input = document.getElementById(inputId);
  3.     if(input.checked) {
  4.         div.className = "checkBox-default";
  5.  input.checked = false
  6.     } else {
  7.         div.className = "checkBox";
  8.         input.checked = "checked";
  9.     }
  10. }


Reply

Marsh Posté le 27-11-2007 à 14:54:50   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed