Qualche giorno fa mi sono imbattuto in un problema che sembrava insormontabile utilizzando l’editor di testo web FckEditor all’interno di un UpdatePanel.
In pratica il problema consisteva nel fatto che dopo il postback non riuscivo più a recuperare il valore della textarea dell’editor stesso.
Questa soluzione funziona sia in modo asincrono che sincrono delle chamate di postback
this.Page.ClientScript.RegisterOnSubmitStatement(
this.GetType(),
"AjaxHack",
"for ( var i = 0; i < parent.frames.length; ++i ) if ( parent.frames[i].FCK ) parent.frames[i].FCK.UpdateLinkedField();"
);
Da oggi la nuova versione di Visual Studio 2010 Beta 1 e .NET Framework 4.0 è disponibile per il download aperto a tutti e non solo ai sottoscrittori MSDN
Ecco i link a disposizione:
Per quanto riguarda le nuove funzionalità dell’ambiente di sviluppo Microsoft e del nuovo .NET Framework 4.0 le potete trovare qui
Se vi siete mai chiesti come poter fare delle operazioni sugli eval dei databind nei vari Gridview, Repeater etc.. la risposta è si può fare praticamente tutto!
Qui di seguito vi inserisco un esempio su come fare un operazione ternaria sul binding senza dover a tutti i costi passare da un metodo “OnRowDataBound”.
<asp:TemplateField HeaderText="Nation">
<ItemTemplate>
<asp:Label ID="lblNation" runat="server" Text='<%# String.Compare((string)Eval("Nation"),"I",false)==0?"Italy":"Not Italy"%>'/>
</ItemTemplate>
</asp:TemplateField>
Spero che questo piccolo pezzo di codice vi possa risultare utile come lo è stato per me!
GridView è un WebControl che considero molto potente nello sviluppo di applicazioni web in asp.net, una delle poche pecche è l’impossibilità di raggruppare dati di una o più colonne, facendo una veloce ricerca su google ho trovato questi file di estensione della Classe GridView e credo che possano risultare utili a molti.
Funzionalità:
- Raggruppamento record
- Raggruppamento multiplo sui record
- Sommatorie
- Medie
Documentazione
Esempi OnLine
Download Codice
Come recuperare un oggetto specifico in una lista generica (List<T>) senza dover utilizzare un ammasso di foreach()?
Semplice utilizzando il metodo List.Find()
Di seguito un esempio veloce:
Oggetto Ticket
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| public class Ticket
{
private int _idTicket;
private string _title;
public int IdTicket
{
get { return _idTicket; }
set { _idTicket = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
} |
Ed ora l’utilizzo del metodo Find():
17
18
19
20
21
22
23
24
25
26
27
| public void CreateAndSearchTicketList()
{
//creo e riempio la collezione
List myTicketList = new List();
myTicketList.Add(new Ticket(1, "Concerto Rock"));
myTicketList.Add(new Ticket(2, "Finale Champions Leauge"));
myTicketList.Add(new Ticket(3, "Museo Louvre"));
//trovo il biglietto per il Museo del Louvre
Ticket myTicket = myTicketList.Find(delegate(Ticket t) {return t.Title == "Museo Louvre"; });
} |
Questo è il metodo più più veloce per cercare un oggetto in una lista, da notare che il metodo Find() trova il primo oggetto nella lista che soddisfa la condizione, per trovare tutti gli oggetti presenti che soddisfano la condizione utilizzare il metodo FindAll().
Questo metodo perfoma una ricerca lineare, pertanto, è un operazione O(n), dove n sta per il numero di oggetti nella lista.
Riferimento alla documentazione ufficiale: http://msdn.microsoft.com/en-us/library/x0b5b5bc(VS.80).aspx