tag Button javascript e DataGrid

di Marco Leoncini, in asp.net,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

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

Nella stessa categoria
I più letti del mese