tag Button javascript e DataGrid

Marco Leoncini

di Marco Leoncini, in asp.net, venerdì 1 ottobre 2004 ore 14.27

Archiviato in: , ,

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

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
BLOG INFO
  • 242 post, 108 commenti, 23 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA