2010-07-09 13 views
0

D'accord, la question n'est pas vraiment simple: laissez-moi vous expliquer.Comment ouvrir une nouvelle fenêtre avec des données POST provenant d'un événement onRowDataBound de Gridview, qui doit transmettre des valeurs provenant des autres cellules?

J'ai un gridview, que j'ai branché à une source de données et tout est pêche. J'ai besoin d'ouvrir une page plus détaillée pour chaque rangée, alors quelle serait la meilleure façon de le faire? Actuellement, j'ai quelque chose comme ça dans la fonction onRowDataBound:

if (e.Row.RowType == DataControlRowType.DataRow) 
    try 
     e.Row.Cells[5].Text = "<input type='image' src='images/more.png' width='20' alt='More...' onClick='test(\"" + e.Row.Cells[1].Text + "\");' />"; 

La fonction de test prendrait le paramètre, plus utiliser certaines valeurs de certains contrôles sur la page en cours pour provoquer une nouvelle fenêtre pour ouvrir les données POSTée à elle. Est-ce possible? À l'heure actuelle ma fonction de test ne fait pas grand-chose:

function test() { 
    var argv = test.arguments; 
    window.open('Details.aspx', 'more', 'width=300,height=200,resizable=yes,toolbar=no'); 
} 

Je voudrais qu'il ouvrir Details.aspx avec des données argv POSTée à elle. N'importe qui?

Répondre

0

Il y a deux façons de publier des données sur le serveur

1) Soit mettre vos données à l'url après « ? » (Demande GET) 2) Soit Mettre les données dans le corps de votre demande (POST/PUT/DELETE Request)

Dans votre cas, vous n'avez que le premier en ouvrant simplement un lien dans une nouvelle page.

Alors seulement vos données dans la chaîne de requête comme

http://yourdomain.com?a=val_a&b=val_b

+0

Oui, c'est la méthode GET. Je voudrais poster ces variables. Est-ce qu'il n'y a aucun moyen de le faire avec ma configuration actuelle? Que devrais-je changer pour POSTER les données, donc personne ne peut pirater l'URL? – Freakishly