Solved

Changing Navigate URL on a GridView

Posted on 2006-11-30
8
770 Views
Last Modified: 2011-10-03
I have a GridView that uses the datanavigateurlformatstring of a HyperLinkField.

The grid displays a list of shipments, mostly USPS, but some UPS and FedEx. This works great for one hyperlink, but of course I need to change it for each row based on a value of the row.

Any creative ideas on how to do this?

Thanks
Randy

HyperLink Field

                        <asp:HyperLinkField DataTextField="tracking_number"
                            datatextformatstring="{0:c}"
                            datanavigateurlfields="tracking_number"
                            datanavigateurlformatstring="http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?CAMEFROM=OK&strOrigTrackNum={0}"  
                            HeaderText="Tracking#" SortExpression="shipments.tracking_number"
                            Target="USPSTrackingNumberLookup"
                        />
0
Comment
Question by:randymiller
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 20

Expert Comment

by:brwwiggins
ID: 18049401
Create a template field and then call a function to set the navigate url field based on the field value you want.
0
 

Author Comment

by:randymiller
ID: 18050040
Are you talking about adding something to the GridView RowCreated Event?

Randy
0
 
LVL 4

Expert Comment

by:satish_nagdev
ID: 18050947
hi randy,
is there any field by which you categorize your tracking number to be FedEx, UPS etc? & is it visible column in gridview?

regards,
satish.
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 4

Expert Comment

by:satish_nagdev
ID: 18050956
if you dont want to work on rowcreated/rowdatabound event, other option i could think of is add a simple page with no controls, in gridview redirect to that page with appropriate parameters then in page load of that page server.transfer or respose.redirect to appropriate page.

hope that helps,

regards,
satish.
0
 
LVL 20

Accepted Solution

by:
brwwiggins earned 500 total points
ID: 18051552
building on what satish said, you need a way to identify if it is UPS, FedEX, etc etc.

Then you can add a template field, drag a hyperlink control into the item template and modify the databinding settings. Then create a custom data binding expression like

FormatLink(Eval("tracking_number"))

Then create a function called FormatLink and you can code your logic

here are some examples hinting at what I'm talking about

http://www.asp.net/learn/dataaccess/tutorial12cs.aspx?tabid=63
http://static.asp.net/asp.net/files/DataTutorials/datatutorial11cs.pdf
0
 
LVL 6

Expert Comment

by:manicsquirrel
ID: 18051832
I don't see why what you have doesn't work.  This part, "={0}", should be the value of the "tracking_number" field for that row.  However, below is what I use.  I usually have the href attribute usually looks more like, "href='javascript:void' onClick='cmdTrack({0});'" and I would have a javascript function open a new window or load an iframe and wait for feedback.

Anyway, try this:

<asp:BoundField
   DataField="tracking_number"
   DataFormatString="<a href='http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?CAMEFROM=OK&strOrigTrackNum={0}'>{0:c}</a>"
   HeaderText="Tracking#"
   SortExpression="shipments.tracking_number"
   Target="USPSTrackingNumberLookup"
 />
0
 

Author Comment

by:randymiller
ID: 18069272
brwwigins,

I wan't able to get a function to work.

I have gotten it taken care of with the RowDataBound event.

I have always found the order of the events confusing as well as the arguments passed. Have you seen a good tutorial that shows the order of the GridView Events and their usage? I have seen a lot of ones that list them alphabitically, but none that show them in run order.

Thanks
0
 
LVL 20

Expert Comment

by:brwwiggins
ID: 18070103
I haven't found a real good tutorial on it yet either. I struggle with the order of events sometimes as well.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Where did System.Data.Objects go? 2 40
Save ms data to server side. 19 55
How to use NFS (Network File System) in Asp.net mvc 5? 4 45
using CK editor in iframes 5 18
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question