ReportViewer disappears after clicking link inside ReportViewer - asp.net

I have a ReportViewer (for SSRS) in an ASP.NET application.
The user enters in parameter information through the web form and then submits it.
The ReportViewer then returns a small report that shows counts of the information requested.
Next to these counts are links (assigned in BIDS) to link to the corresponding report using the parameters already entered.
It all renders fine until I click one of the links in the ReportViewer. It will then give the brief "Loading" dialog and then the ReportViewer disappears.
Not sure how to handle this and I can't find much information on it. I would ideally like the selected report to open in a new window (no URL bar, etc).
Please help!

This ended up being an issue with how ReportViewer was installed on our development and production servers. So when it seems like nothing else can explain what is going on with the ReportViewer... make sure the DLLs are properly installed on your server.

Related

Scraping in R, aspx form don't know how to get data

Hello Im traying to scrape data from https://eservicios2.aguascalientes.gob.mx/sop/geobras/UI/frmObrasTodas.aspx
I can get the data from the main page but I don't know how to get the data from the form,
a) when choose a row and ask for "Detalle" , means detail goes to a form.
b) don't know how to follow the link
Need to get data from each row, can anybody help me.
the main issue and problem is that this is a asp.net web site. So, when you select a row, this likely uses a server side event. you MIGHT be able to write some JavaScript to select a row. But then the next issue is even more of a challenge. Once you select a row, then you have to click on a button. That button is going to run server side code. And that server side code is going to look at and grab the row value selected - VERY likely again server side code. Unlike say a simple web site with hyper-links?
.net sides are full driven from vb.net or c# code. We don't use silly things like hyper-links, or even silly parameters in the web URL.
So, after you select a row (perhaps possible in js), then you would then have to click on the details button. This again can be done with JavaScript
Say, in jQuery like this:
$('#NameOfButton').click();
So asp.net sites don't use simple code like what you see and get from someone who take that 3 day web developer program promising that now you are a experienced web developer. Asp.net sites as a result don't use simple HTML markup code and things like a simple hyper-link to drive the web site. There are no "links" for each row, but only code on the server side that runs to pull the data from the database, and then render that information, and THEN send it down as a html markup.
The bottom line?
The site is not simply HTML and simple hyper-links that you click on. When you click on that button, then the code behind (written in a nice language like c# or vb.net) runs. There is thus no markup code or even JavaScript code that is required here. You talking about clean and nice server side code. (and code written in a fantastic IDE - Visual Studio).
This means that aspx web sites are code behind driven, and as a result they are rather difficult to web scape in a automated fashion. You can get/grab the page you are on, but since there are no hyper-links to the additonal data (such as details), then you don't have a simple URL to follow/trace here.
Worse yet, the setup code (what occurs when you selected a single row) also in most cases has to be run. Only if all values are setup 100% correctly BEFORE hitting the "details" button will this thus work. And even worse, if you note, on the details page, there is no parameters in the URL. This means that not only is code behind required to run BEFORE the 2nd details page launches, but the correct setup code behind has to run. And even worse yet, is the 2nd page URL VERY likely also checks and ensures that the previous URL page was from the same site (as a result you can NOT JUST type in a url for the 2nd page - it will not work.
And in fact, if you look even closer? When you hit details button, the web pages re-loads, re-plots and renders what is CLEARLY a whole new web page and layout.
But note how the URL DOES NOT change!!! They are NOT even using a iframe for this.
This is because they are using what is called a server side re-direct. The key "tell tell" sign is that the URL remains the same, but the whole page layout is 100% different. What occurred is the server side did a re-direct to a 100% whole new page. But since the browser did not and was not causing this navigation? The code behind actually loads + displays a whole new web page and sends it down to the web client side.
However, note how the URL remains the same!!! This is due to the code behind is loading + displaying a whole new different web page - but since the navigation to that new page occurred with server side code?
Well then the server can load + send out anything it wants to the client - include a whole new web page, and you don't get nor see a web url change.
Again, this is typical of asp.net systems in which server side code drives the web site, and not much client side code.
You "might" be able to automate scraping. But you would need some custom code to select a given row, and then some code to click the details button. And that's going to be a REAL challenge, since any changes to the web page code (by you) also tend to be check for, and not allow server side.
The only practical web scrape approach would be to use some desktop tools to create a WHOLE instance of the web browser, let you the user navigate to the given web page that displays the data, and then hit some "capture" button in your application that now reads and parses out the data like you doing now for the main page.

Update Panel posts back after a period of inactivity

I have a asp.net user control in a SharePoint solution. This user control uses Telerik Asp.net Ajax controls to provide a basic datagrid CRUD operations. I use this grid in a web part on a page in SharePoint 2013.
I have a datagrid which is wrapped with RadAjaxPanel to ajaxify it.
It all works fine. However, let's say, I click the add new record button and it opens a form to fill, if I leave that form intact for a minute, then start to fill and submit, it does postback and cancels form.
However, if I click on add new record and fill the form and submit, it all works fine. I guess there is a timeout somewhere which causes this, my two days of research did not help me to find it.
I was just wondering whether you have ever come across with this issue. I guess it does not matter whether it is Asp.net update panel or RadAjaxUpdatePanel, even if you have seen this issue on Asp.net update panel, that will help too.
I did not know what part of the code I should share, please let me know if you need any code to understand this issue.
There must be something on SharePoint script manager, and ajax manager, but I have no idea what.
It looks like it is a known bug in SharePoint 2013. People suggested to install December 2014 CU to solve it, but it did not solve it. Someone mentioned in this link to make request to server via javascript event given interval. As my page does postback if I leave it about 20-30 sec idle, I call a random SP web service evet 15 sec which seems to resolve my issue. Please see below link which helped me to workaround this.

SSRS Report Hyperlink Loses Functionality in .net Application

I have an SSRS report that employs RowGroups to group data. One of the fields used in the group is a field that stores a URL as text. I've set a Go To URL action on a textbox which enables it to act as a hyperlink that opens up the URL stored as text in a field (i.e. =Fields!URL.value).
The textbox works fine in BIDS and in Report Manager, but when the report is accessed through our custom .asp Reporting Application, the textbox loses this link functionality. It just becomes text. When the mouse is hovered over the textbox, the cursor does not change. I've created another textbox on the report outside the RowGrouping and configured it the same way, and it works fine in the Report Manager and on the Report Application.
Is there any particular configuration that could be restricting a Go to Action property when in a RowGroup on a Reporting Application? Could this be an issue with the report, or an issue on the Reporting App end?
If you are using the ReportExecutionService check to make sure Javascript is true in the device info parameter?
<DeviceInfo>
<JavaScript>True</JavaScript>
</DeviceInfo>
But you said it worked if it was in another part of the report?
link to <DeviceInfo> Details
Never really found an answer to this problem, but a work around I used was placing a textbox to the right of the grouped textbox, where the link seems to work fine.

Reporting Services URL parameter problems

I have an URL to a location on the server where it can find teh report.
The report works just fine if i manually refresh it.
I tried using rc:ClearSession=TRUE and i also tried sending a random parameter, but the report is still not being refreshed.
Any ideas?
The main scenario:
User eneters the page(with a grid view)
User clicks on Export
User sees the Report
User deletes an entry from the page - grid view
User clicks on Export again
User sees the exact same report
P.S. : The report query returns the data that should be displayed but the report returns the previous data.
Could be how the report is setup. Go to your report server (http://reportserver/reports). Find the report and click Properties. Then go to Execution. Are any of the report caching or snapshot options turned on?
I found the problem: it was that the name of the report was too long
I don't really understand why the report would work but won't refresh.
I shortened the name and it worked.
Thank you for your answer

Is there a way from preventing other ReportViewers on the same webpage from refreshing?

Currently I am working on a web page that has six ReportViewer controls that are using remote processing and that allow for drill-down. When a user clicks on one control the entire page refreshes and the other five reports all refresh as well. Users are currently requesting that the refreshing of the other controls be removed in favor of only the one they click on refreshing. Is there a way of doing this, I've noticed that in Sharepoint that clicking a drill-down report does not require the entire entire page to be reloaded and I'm wondering if I can provide the same functionality.
I have been doing some more research on this issue and it looks like the AsyncRendering property of the ReportViewer control controls the functionality that I'm looking for. When it is set to "false" it prevents the "Report is Being Generated" message from being displayed which is what the users were commenting on. The downside is that the page can take a bit longer to load than before, but as we are working on a development machine this might not be as noticeable once we move to the actual production box.

Resources