Foros del Web » Programación para mayores de 30 ;) » .NET »

DataSet hyperlinkColumn

Estas en el tema de DataSet hyperlinkColumn en el foro de .NET en Foros del Web. hola a to2. Tengo el siguiente código en el que paso la info de un DataReader a un Dataset. y el DataSet lo vuelco a ...
  #1 (permalink)  
Antiguo 03/07/2009, 10:34
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 0
DataSet hyperlinkColumn

hola a to2.
Tengo el siguiente código en el que paso la info de un DataReader a un Dataset.
y el DataSet lo vuelco a un GridView
Sin embargo, uno de los campos es un link. y no me coge el enlace.
Si la columna la decharo como hyperlinkColumn , automáticamente no me la
muestra en el GridView.
Si la decharo como String , el enlace se muestra como texto .....
Como puedo insertar un enlace en un Dataset?

*** este es mi código datos.cs ****************************

partial class datosIniciales : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string SQL = "select * xxxxxx ";
SqlDataReader rs = SqlServer_Connection.SQL_Select(SQL);
DataSet dataSet = new DataSet();
DataTable schemaTable = rs.GetSchemaTable();
DataTable dataTable = new DataTable();

string columnName = "CODIGO";
DataColumn column = new DataColumn(columnName);
dataTable.Columns.Add(column);
columnName = "Datos ";
column = new DataColumn(columnName, typeof(HyperLinkColumn));
dataTable.Columns.Add(column);
dataSet.Tables.Add(dataTable);
int i = 0;
while (rs.Read())
{
DataRow dataRow = dataTable.NewRow();
dataRow[0] = rs["campoxxxx"].ToString();
HyperLinkColumn h1 = new HyperLinkColumn();
h1.NavigateUrl = "http://www.foros.com";
h1.DataTextField = "usuario";
h1.DataTextFormatString = "donwload";
h1.Text = "Consultar";
h1.DataTextFormatString = "http://www.foros.com";
dataRow[1] = h1;
dataTable.Rows.Add(dataRow);
}
rs.Close();

dg.DataSource = dataSet;
dg.DataBind();
}
}


**********y así tengo el GridView datos.aspx ********************

<asp:GridView ID="dg" runat="server">
</asp:GridView>
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
  #2 (permalink)  
Antiguo 04/07/2009, 08:35
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: DataSet hyperlinkColumn

Bueno no se porque metes el HyperLinkColumn en el DataRow, andate a el mismo GridView y definele la columna de tipo HyperLinkColumn y le dices que columna de el DataTable la alimentara para mostrar el link ó el texto y cual le dará el link.

Si te fijas cuando agregas en el design de el gridview en el hyperlinkcolumn podrás ajustar todo en la sección Data:
DataTextField : Define que columna de el DataTable le dará el texto a mostrar
DataNavigateUrlFields : Define que columna de el DataTable le dará el url usará

No veo porque tratar de meter el HyperLinkColumn en el DataRows.

Saludos,
  #3 (permalink)  
Antiguo 05/07/2009, 05:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: DataSet hyperlinkColumn

ok he definido mi gridView así

<asp:GridViewID="dg"runat="server"AutoGenerateColumns="False">
<Columns>
<asp:BoundFieldHeaderText="Codigo"/>
<asp:HyperLinkFieldHeaderText="Link URL"/>

</Columns>
</asp:GridView>


Sin embargo ahora no me muesta los resultados ...

while (rs.Read())
{
DataRow dataRow = dataTable.NewRow();
dataRow[0] = rs["campoxxxx"].ToString();
dataRow[1] = rs["campoyyyyy"].ToString();
dataTable.Rows.Add(dataRow);
}
rs.Close();

dg.DataSource = dataSet;
dg.DataBind();
}
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
  #4 (permalink)  
Antiguo 05/07/2009, 06:03
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: DataSet hyperlinkColumn

En esta parte:

dg.DataSource = dataSet;
dg.DataBind();

mandale mejor el dataTable:

dg.DataSource = dataTable;
dg.DataBind();

Y en esta otra te falta definir cosas que son importante como por ejemplo que dato de el data table usara cada uno, ejemplo un query como "select codigo, link from table" nos dará 2 columna que son codigo y link y las usaremos cambiando tus lineas estas:

<asp:BoundField HeaderText="Codigo"/>
<asp:HyperLinkField HeaderText="Link URL"/>

Por estas:

<Columns>
<asp:BoundField DataField="codigo" HeaderText="Codigo" />
<asp:HyperLinkField DataNavigateUrlFields="link" DataTextField="link" HeaderText="Link URL" />
</Columns>

Saludos,
  #5 (permalink)  
Antiguo 05/07/2009, 11:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: DataSet hyperlinkColumn

ok!!! gracias me ha salido...
sin embargo ahora me ha surgido una nueva duda :
Si la url lleva algún parámetro no me lo interpreta bien.
He definido DataNavigateUrlFormatString==http://www.foros.com?id={0}
pero me pone la url dos veces....

while (rs.Read())
{

DataRow dataRow = dataTable.NewRow();
dataRow[0] = rs["codigo"].ToString();
dataRow[1] = "http://www.foros.com?id=" + rs["codigo"].ToString();
dataTable.Rows.Add(dataRow);
}



<asp:GridViewID="dg"runat="server"AutoGenerateColumns="false">
<Columns>
<asp:BoundFieldDataField="cod"HeaderText="Codigo"/>
<asp:HyperLinkFieldDataNavigateUrlFields="Datos" DataTextField="Datos"HeaderText="Link URL"DataNavigateUrlFormatString="http://www.foros.com?id={0}"/>
</Columns>
</asp:GridView>
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
  #6 (permalink)  
Antiguo 05/07/2009, 11:58
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: DataSet hyperlinkColumn

ok.. llevo todo el fin de semana con esto y ya estoy mereado...

creo que lo he resuelto :

while (rs.Read())
{
DataRow dataRow = dataTable.NewRow();
dataRow[0] = rs["codigo"].ToString();
dataRow[1] = rs["codigo"].ToString(); // paso solamente el CODIGO PQ en DataNavigateUrlFormatString compongo la URL
dataTable.Rows.Add(dataRow);
}


<asp:HyperLinkFieldDataNavigateUrlFields="Datos" DataTextField="Datos" HeaderText="Link URL" DataNavigateUrlFormatString="http://www.foros.com?index.aspx?id={0}"/>


Gracias !!
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:12.