How to assign a column of URLs to Hyperlink Column of a DataGrid c

G

Guest

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
I

intrader

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
Let's assume that you have the list in the dataset, dataview, array. You
can use DataBinding to provide your grid with values. For a good article:
http://www.codeproject.com/aspnet/Mastering_DataBinding.asp
 
G

Guest

HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang
 
G

Guest

Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


Elton W said:
HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



david said:
Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
G

Guest

You need bind datagrid with data source:

dg.DataSource = dataSourceObject
dg.DataBind()

And specify link column's binding field:

Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )
linkCol.DataTextField = "URL_FIELD_NAME"

Or in DataGrid_ItemDataBound event:

using DataRowView object (e.Item.DataItem)

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0), HyperLink)
link.NavigateUrl = drv("URL_FIELD_NAME").ToString

HTH






david said:
Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


Elton W said:
HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



david said:
Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
G

Guest

thanks

I will try it.

David

Elton W said:
You need bind datagrid with data source:

dg.DataSource = dataSourceObject
dg.DataBind()

And specify link column's binding field:

Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )
linkCol.DataTextField = "URL_FIELD_NAME"

Or in DataGrid_ItemDataBound event:

using DataRowView object (e.Item.DataItem)

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0), HyperLink)
link.NavigateUrl = drv("URL_FIELD_NAME").ToString

HTH






david said:
Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


Elton W said:
HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



:

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
G

Guest

You can also look at following URL:

http://msdn.microsoft.com/library/d...lumnclassdatanavigateurlformatstringtopic.asp

HTH

david said:
thanks

I will try it.

David

Elton W said:
You need bind datagrid with data source:

dg.DataSource = dataSourceObject
dg.DataBind()

And specify link column's binding field:

Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )
linkCol.DataTextField = "URL_FIELD_NAME"

Or in DataGrid_ItemDataBound event:

using DataRowView object (e.Item.DataItem)

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0), HyperLink)
link.NavigateUrl = drv("URL_FIELD_NAME").ToString

HTH






david said:
Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


:

HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



:

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
G

Guest

By the way, what does it mean by 0 in
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0),
HyperLink) ?

Why use 0 in Control(0)? Can you explain this line of code?

Thanks

David

Elton W said:
You can also look at following URL:

http://msdn.microsoft.com/library/d...lumnclassdatanavigateurlformatstringtopic.asp

HTH

david said:
thanks

I will try it.

David

Elton W said:
You need bind datagrid with data source:

dg.DataSource = dataSourceObject
dg.DataBind()

And specify link column's binding field:

Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )
linkCol.DataTextField = "URL_FIELD_NAME"

Or in DataGrid_ItemDataBound event:

using DataRowView object (e.Item.DataItem)

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0), HyperLink)
link.NavigateUrl = drv("URL_FIELD_NAME").ToString

HTH






:

Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


:

HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



:

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
G

Guest

In a cell, there are one or more control(s), e.g. you can put a label and a
textbox or even just a white space (treated as Literal control).
Hence, cell.Controls(0) means first control, in your case Hyperlink control.
 
G

Guest

Hi, Elton:

in your sample code,
Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )

The link_index means the column index such as 0, 1, and so on, is that right?

Thanks

David
Elton W said:
You need bind datagrid with data source:

dg.DataSource = dataSourceObject
dg.DataBind()

And specify link column's binding field:

Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )
linkCol.DataTextField = "URL_FIELD_NAME"

Or in DataGrid_ItemDataBound event:

using DataRowView object (e.Item.DataItem)

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0), HyperLink)
link.NavigateUrl = drv("URL_FIELD_NAME").ToString

HTH






david said:
Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


Elton W said:
HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



:

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
G

Guest

Yes

david said:
Hi, Elton:

in your sample code,
Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )

The link_index means the column index such as 0, 1, and so on, is that right?

Thanks

David
Elton W said:
You need bind datagrid with data source:

dg.DataSource = dataSourceObject
dg.DataBind()

And specify link column's binding field:

Dim linkCol As HyperLinkColumn = CType(dg.Columns(link_index),
HyperLinkColumn )
linkCol.DataTextField = "URL_FIELD_NAME"

Or in DataGrid_ItemDataBound event:

using DataRowView object (e.Item.DataItem)

Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
HyperLink link = CType(e.Item.Cells(link_Column_index).Controls(0), HyperLink)
link.NavigateUrl = drv("URL_FIELD_NAME").ToString

HTH






david said:
Thank you.

It is not completely clear to me. For example, I have a list of URLs, called
URLs which is a column of a dataset, and I have a column of hyperlink column,
link, in the datagrid, dg. Assume that these two columns have the same size.
In the design view, I have left the URL box empty for the hyperlink column in
the property builder.

Now in the code behide, I try to fill in the URL box (property item) for
each hyperlink column item after I got the list of URLs. Can I do the
following:

dg.Columns("link") = URLs

Does it make sense?

David


:

HI David,

In DataGrid_ItemDataBound event:

HyperLink link = (HyperLink)e.Item.Cells[link_Column_index].Controls[0];
link.NavigateUrl = getURL();

HTH

Elton Wang



:

Hi, all:
I need a help from you about DataGrid control.
I created a DataGrid, dg, in design view of .NET visual Stadio and use the
builder to add a Hyperlink column to dg.
I want to try to assign a column of URLs to this hyperlink column in
programming way (ie., dynamically assignment). However, I can not find a way
to continue doing it.

Do you have ideas about it? Thanks.

David
 
Joined
Jun 24, 2006
Messages
1
Reaction score
0
Hi... this is the solution

Hi,

I am too late .. but this is a workable soultion

Hyper_Column.DataTextField = "PSH_Project_SubName"
Hyper_Column.DataNavigateUrlField = dsProjectDetail.Tables(0).Columns(22).ColumnName

Both the above properties refer same dataset columns in different ways.. but work on the same dataset..

I thought Datagrid should have such a proeperty and when i found it out myself was happy...

be happy,
Dany
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,188
Latest member
Crypto TaxSoftware

Latest Threads

Top