tag Button javascript e DataGrid

sembra un titolo di un film di Sergio Leone :)
del datagrid ormai uso quasi esclusivamenete TemplateColumn, vuoi perche si può "infilare" al sui interno praticamente di tutto, vuoi perche le altre colonne spesso non fanno esattamente quello che voglio.
oggi avevo la necessità che premendo un bottone (senno potevo usare HyperLinkColumn ) venissero passati ad un pagina diversi parametri in querysting, nulla di che ,è una cosa semplicissima si preme il pulsante si esegue il codice si monta il tutto e si fa un bel Response.Redirect, ma volevo non riscatenare un PostBack visto che i dati li avevo bella griglia fin da subito. 

prima cosa da fare inserire nel mio DataGrid un bel tag button "impreziosito" con l'attributo Runat="server" e un bel id:

al primo caricamento della pagina ,durante l'evento ItemDataBound recuperiamo un riferimento al bottone:

private void subjectGrid_ItemDataBound (object sender, DataGridItemEventArgs e)
switch (e.Item.ItemType)

case ListItemType.Item:
case ListItemType.AlternatingItem:
InserAttribute(((HtmlButton)e.Item.FindControl("menage2")), e);
break;

}
}

e lo passiamo insieme a DataGridItemEventArgs a un metodo che inserisce del codice JavaScript nel evento clientside onClick

private void InserAttribute(HtmlButton button, DataGridItemEventArgs e)
{
StringBuilder myApplicationPath = new StringBuilder(Request.ApplicationPath);
int _SbLength = myApplicationPath.Length - 1;
if(myApplicationPath[myApplicationPath.Length -1 ].ToString() == "/") myApplicationPath.Replace("/","",_SbLength,1);

StringBuilder sb = new StringBuilder("JavaScript:self.location.replace('");
sb.Append(myApplicationPath.ToString() + "/moduli/News/Admin/Articoli.aspx");
sb.Append("?SubjectID=");
sb.Append(((DataRowView)e.Item.DataItem).Row[0].ToString());
sb.Append("&GroupID=");
sb.Append(((DataRowView)e.Item.DataItem).Row[5].ToString());
sb.Append("')");
button.Attributes.Add("onclick",sb.ToString());
}

in questo modo ogni mio bottone manderà alla pagina giusta senza esegurie nessun PostBack ne Response:Redirect

Nella stessa categoria

Commenti

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - nostromo - Il blog di Marco Leoncini

TagCloud
BLOG INFO
  • Post: 225
  • Commenti: 89
  • TrackBacks: 18
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML

MVP
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA