Anche questa è una funzionalità interessante di asp.net… E’ possibile da web.config andare a chiedere ad asp.net di utilizzare un nostro controllo custom anzichè un controllo standard di asp.net:
<pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
<tagMapping>
<add tagType="System.Web.UI.WebControls.Button"
mappedTagType="MyControls.MyButton" />
</tagMapping>
</pages>
Che sostituirà tutti i button di asp.net con il button personalizzato. Implementare un proprio button è un’operazione abbastanza semplice, basta creare un progetto CustomControl, nel mio caso MyControls ed estendere il controllo a cui vogliamo aggiungere qualche funzionalità. Supponiamo ad esempio di voler fare in modo che quando passiamo con il mouse sul pulsante il suo testo diventi ‘cliccami’:
1: using System.Web.UI.WebControls;
2:
3: namespace MyControls
4: {
5: public class MyButton : Button
6: {
7: public MyButton()
8: {
9: this.Attributes.Add("onmouseover", "this.value='cliccami'");
10: }
11: }
12: }
Il risultato sarà ovviamente:
Il tutto senza aver minimamente toccato la pagina:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication5.WebForm2" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:button text="text" runat="server" />
</div>
</form>
</body>
</html>
Su internet trovate un po’ di applicazioni interessanti come ad esempio sostituire le textbox con delle vostre textbox in cui lo sfondo diventa colorato al focus, dando all’utente un feedback sul dove sta scrivendo.
-- Michele