469,889 Members | 1,268 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,889 developers. It's quick & easy.

Datagrid - HyperlinkColumn and variables

Hey all, I need to add a hyperlinkcolumn to a datagrid, but the path
(DataNavigateUrlFormatString) is dynamic, since the page lists files in
directories. The folder name to list is stored in a variable (strPath).
The code that I tried is: DataNavigateUrlFormatString='<%#strPath
%>/{0}'

But it says: "Databinding expressions are only supported on objects
that have a DataBinding event"

Anyway I could place my variable on that field, using another way, or
what Im doing wrong ? I searched for this problem and find some info
about TemplateColumns too, can I insert variables onto it ?

Thanks for helping.

Sep 12 '06 #1
3 4165
Hi,

I'd use a template column and a helper function to add the variable. Here's
a little sample below.

Let us know if this helps?

Ken
Microsoft MVP [ASP.NET]

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
Dim strPath As String = "mypath"
Protected Sub Page_Load _
(ByVal sender As Object, _
ByVal e As System.EventArgs)

If Not IsPostBack Then
datagrid1.DataSource = CreateDataSource()
datagrid1.DataBind()
End If
End Sub

Function AddPath(ByVal inString As String) As String
Return strPath & "\" & inString
End Function

Function CreateDataSource() As Data.DataTable
Dim dt As New Data.DataTable
Dim dr As Data.DataRow
dt.Columns.Add(New Data.DataColumn _
("IntegerValue", GetType(Int32)))
dt.Columns.Add(New Data.DataColumn _
("strFile", GetType(String)))
dt.Columns.Add(New Data.DataColumn _
("CurrencyValue", GetType(Double)))
dt.Columns.Add(New Data.DataColumn _
("Boolean", GetType(Boolean)))
Dim i As Integer
For i = 0 To 5
dr = dt.NewRow()
dr(0) = i
dr(1) = "file" + i.ToString() & ".aspx"
dr(2) = 1.23 * (i + 1)
dr(3) = (i = 4)
dt.Rows.Add(dr)
Next i
Return dt
End Function
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Helper Function</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:datagrid id="datagrid1" runat="server" autogeneratecolumns="False">
<columns>
<asp:templatecolumn headertext="File">
<itemtemplate>
<asp:hyperlink
runat="server"
navigateurl='<%# AddPath(DataBinder.Eval(Container,
"DataItem.strFile")) %>'
text='<%# DataBinder.Eval(Container, "DataItem.strFile")
%>'>
</asp:hyperlink>
</itemtemplate>
</asp:templatecolumn>
</columns>
</asp:datagrid>
</div>
</form>
</body>
</html>

"Jl_G_0" <jl*********@gmail.comwrote in message
news:11**********************@d34g2000cwd.googlegr oups.com...
Hey all, I need to add a hyperlinkcolumn to a datagrid, but the path
(DataNavigateUrlFormatString) is dynamic, since the page lists files in
directories. The folder name to list is stored in a variable (strPath).
The code that I tried is: DataNavigateUrlFormatString='<%#strPath
%>/{0}'

But it says: "Databinding expressions are only supported on objects
that have a DataBinding event"

Anyway I could place my variable on that field, using another way, or
what Im doing wrong ? I searched for this problem and find some info
about TemplateColumns too, can I insert variables onto it ?

Thanks for helping.

Sep 12 '06 #2
thanks for helping. This helped me out because I learned to use a
template column, but im having a hard time to convert my code that
lists files on a folder using a DataGrid:

strDirector = New DirectoryInfo(Server.MapPath(strPath))
'this part works fine
gridFiles.DataSource = strDirector.GetFiles("*" & strFilter & "*")
'I can filter the files I want to show
gridFiles.DataBind()
' then I bind the data to the grid

Since I have the files on the DataGrid (gridFiles), I have one
HyperlinkColumn that creates one link to each file, and then I can
access it.

I just need to configure the path so when I click the link it really
opens the file, I can't hardcode the path because since I only have one
page, it 'should' use a variable to set the path.

Right now im trying to create a template column inside my datagrid,
hope Im doing the right thing.

thks again for showing me how to use template columns.

Sep 12 '06 #3

it worked fine... template columns aren't that hard now... I think.
thanks again.

Sep 13 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by cooltech77 | last post: by
2 posts views Thread by ltt19 | last post: by
2 posts views Thread by Tim::.. | last post: by
reply views Thread by Tim::.. | last post: by
4 posts views Thread by sakieboy | last post: by
reply views Thread by virendra.chandra | last post: by
2 posts views Thread by tshad | last post: by
reply views Thread by Salome Sato | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.