Pasar datos a otra página

Estoy programando en ASP.net y C#.. Quisiera saber si me puedes ayudar con lo siguiente: Tengo un datagrid, el cual tiene datos y en la columna ID al darle click en el numero me redirige a una página en la cual me muestra los datos en labels. El problema es que tengo que me redirija el numero pero necesito que también se me muestre en la otra página el valor que seleccione de un dropdownlist. ¿Cómo puedo hacer esto? Tengo lo siguiente que me toma el valor del Id y me lo manda a la otra página:
<asp:HyperLinkColumn DataTextField="NUM_REF" SortExpression="No. Pedimento" DataNavigateUrlField="NUM_REF" DataNavigateUrlFormatString="editdocs.aspx?ped={0}" HeaderImageUrl="images/luis/folder.gif" HeaderStyle-Width="64px">
                <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#868FE8"></HeaderStyle>
            </asp:HyperLinkColumn>
Y para que la otra página me recoja el valor uso esto:
string ped = Request.QueryString["ped"];
Ahora mi duda, insisto, ¿es cómo puedo tomar el valor del dropdownlist y pasarlo a mi otra página?

1 respuesta

Respuesta
1
Prueba a añadir otro parámetro en la ruta que pasas en el DataNavigateUrlField quedando:
"editdocs.aspx?ped={0}&drop=<%=DropDownList1.SelectedValue%>".
Luego lo recuperarías así:
string drop= Request.QueryString["drop"];
Ya me dirás si te funciona, sino buscaremos otra manera.
Hola.. Gracias por responder.. lo puse igual como sugeriste y me despliega lo que pongo después del igual.. osea donde dice dropdownlist1.selectvalue
Al menos ya pasa algo a la otra página je je.. pero pues quiero el valor del item que escogí del dropdownlist je je. ¿Alguna otra idea?
¿Cómo se llama tú desplegable?
Mi dropdownlist se llama ddladuana, la variable con al cual quiero arrastrar la información se llama: adu.
string adu = Request.QueryString["adu"];
<asp:HyperLinkColumn DataTextField="NUM_REF" SortExpression="No. Pedimento" DataNavigateUrlField="NUM_REF" DataNavigateUrlFormatString="editdocs.aspx?ped={0}&adu=<%=ddladuana.SelectedValue%>" HeaderImageUrl="images/luis/folder.gif" HeaderStyle-Width="64px">
                <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#868FE8"></HeaderStyle>
            </asp:HyperLinkColumn>
Y al rener así me trae el nombre del dropdown list en lugar del valor que selelcioné...
Espero me puedas ayudar!
¿Tienes el dropdown list con el autopostbak a true? Quizá no te pille el valor porque no lo tienes puesto así.
Hola, pues el autopostback ya lo puse en false.. y nada.. no me da el valor del dropdownlist1...
O no te sabes otra forma en que pueda mandar la información del DDL a otra página.. ¿de preferencia que no sea muy complicada de aplicar? Je je.. No es que sea floja si no que opto por lo rapido y sencillo je je..
Te lo agradecería mucho..
El autopostback lo tienes que poner a true, no a false, guardate este valor en una variable de session y así lo tendrás disponible en la otra pantalla independientemente de grid.
Bueno, ya casi lo termino verás lo que hice fue agregar una variable de sesión para pasar el dato del dropdownlist.. así como me aconsejaste.. y me resultó.. solo una ultima duda.. je je..
Del modo que estábamos pasando la información a la otra página.. ¿para enviar la información de una columna? Osea, ya vez que le "doy click" y me envía el numero de la fila del Grid a la cual le estoy dando click.. ahora bien.. ¿si quiero también me envíe otra información de ese mismo grid?
Osea si tengo las siguientes columnas:
ID | Nombre| Direccion
1  |Juan       | Calle4 s/n
2 |Laura | Calle Mar rojo #124
Y al darle click en el numero.. me envía el numero a la otra página.. pero también quiero el nombre.. ¿cómo le hago? ¿Le pongo el nombre de la columna? ¿O cómo? Sorry je je.. pero nunca había usado así, Gracias!
Pues creo que igual que antes pones un {0} para indicar el número de la columna del grid del que quieres que coja el valor, si pones el número de la columna en la que tienes el nombre podrás pasarlo también.
Hola.. disculpa je je.. pero me muestra el siguiente error:
Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
Y según yo ya le puse bien mira.. lo puse así:
DataNavigateUrlFormatString="editdocs.aspx?ped={0}&razonsoc={1}"
Y pues si le pongo cero me trae el numero.. mm.. ¿qué puedo hacer para resolver esto?
Gracias por la ayuda y sugerencias!
Muéstrame, por favor, todo el código del grid y te comento que ideas tengo para hacer lo que pides.
Este es el código de mi grid:
<asp:datagrid id="DataGrid1" runat="server" Width="100%" EnableViewState="False" AutoGenerateColumns="False" Font-Names="Arial Narrow"
    Font-Size="14px" CellPadding="2" BackColor="White" AlternatingItemStyle-BackColor="#EAEAEA"><%--<%=ddladuana.SelectedValue%>adu=<%=ddladuana.SelectedValue%>&razonsoc={1}--%>
        <Columns>
            <asp:HyperLinkColumn DataTextField="NUM_REF" SortExpression="No. Pedimento" DataNavigateUrlField="NUM_REF" DataNavigateUrlFormatString="editdocs.aspx?ped={0}" HeaderImageUrl="images/luis/folder.gif" HeaderStyle-Width="64px">
                <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#868FE8"></HeaderStyle>
            </asp:HyperLinkColumn>
            <asp:BoundColumn DataField="NOMCLI" HeaderText="Razón Social" HeaderStyle-Width="100px">
                <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#868FE8"></HeaderStyle>
            </asp:BoundColumn>
            <asp:BoundColumn DataField="FIRMA" HeaderText="FIRMA" HeaderStyle-Width="80px">
                <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#868FE8"></HeaderStyle>
            </asp:BoundColumn>
        </Columns>
    </asp:datagrid>
Espero tu respuesta.. gracias por la atención!
A ver estas direcciones que te paso, a ver si te dan alguna pista:
http://www.ms-news.net/f1125/personalizar-campo-hypelink-dentro-de-un-gridview-6948495.html
http://www.clubdelphi.com/foros/archive/index.php?t-48018.html
Ok.. los voy a achecar.. luego te digo que pasó je je..
¿Cómo te quedó esto al final?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas