Hide SSRS parameters in CRM 2011 - reporting-services

I describe my problem differently,
I could open the report with the following code
var url="/"+orgname+"/crmreports/viewer/viewer.aspx?action=run&helpID=OppClients.rdl&id=%7bC7D34446-7F90-E111-A8F3-080027EA7FF9%7d&p:nomclient=aziza boulabyar";
window.open(url, "", "height=" + (screen.availHeight * .75)
+ ",width=" + (screen.availWidth * .75)
+ ",toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=0");
Now I want to hide the parameter in the reports and when I added &rc:parameters=false to the url I get an error as described in the picture below
Can some one tell me how to solve this problem
Below the contents of the log File:
at ErrorInformation.LogError()
at ErrorInformation..ctor(Exception exception, Uri requestUrl, Boolean logError)
at MainApplication.Application_Error(Object sender, EventArgs eventArguments)
at EventHandler.Invoke(Object sender, EventArgs e)
at HttpApplication.RaiseOnError()
at ApplicationStepManager.ResumeSteps(Exception error)
at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error: Une exception de type 'System.Web.HttpUnhandledException' a été levée.
Error Message: CRM Parameter Filter - Invalid parameter 'rc:parameters=false' in Request.QueryString on page /Manhattan/crmreports/viewer/viewer.aspx
The raw request was 'GET /Manhattan/crmreports/viewer/viewer.aspx?action=run&helpID=OppClients.rdl&id=%7bC7D34446-7F90-E111-A8F3-080027EA7FF9%7d&rc:parameters=false&p:nomclient=aziza%20boulabyar' called from .
Error Details: Une exception de type 'System.Web.HttpUnhandledException' a été levée.
Source File: Not available
Line Number: Not available
Request URL: http://localhost:5555/Manhattan/crmreports/viewer/viewer.aspx?action=run&helpID=OppClients.rdl&id=%7bC7D34446-7F90-E111-A8F3-080027EA7FF9%7d&rc:parameters=false&p:nomclient=aziza%20boulabyar
Stack Trace Info: [InvalidOperationException: CRM Parameter Filter - Invalid parameter 'rc:parameters=false' in Request.QueryString on page /Manhattan/crmreports/viewer/viewer.aspx
The raw request was 'GET /Manhattan/crmreports/viewer/viewer.aspx?action=run&helpID=OppClients.rdl&id=%7bC7D34446-7F90-E111-A8F3-080027EA7FF9%7d&rc:parameters=false&p:nomclient=aziza%20boulabyar' called from .]
à Microsoft.Crm.Application.ParameterFilter.ValidateParameter(HttpRequest request, ArrayList parameterCollection, String key, String value, ParameterSources source, EntityType pageEntityType, FormAdditionalAllowedParameters additionalAllowedParameters)
à Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking, FormAdditionalAllowedParameters formAdditionalAllowedParametersTemp)
à Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking)
à Microsoft.Crm.Application.Controls.AppPage.ValidatePageParameters()
à Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e)
à System.Web.UI.Control.InitRecursive(Control namingContainer)
à System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
[HttpUnhandledException: Une exception de type 'System.Web.HttpUnhandledException' a été levée.]
à System.Web.UI.Page.HandleError(Exception e)
à System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
à System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
à System.Web.UI.Page.ProcessRequest()
à System.Web.UI.Page.ProcessRequest(HttpContext context)
à System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
à System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

My solution involves several steps, mostly unsupported - but it works.
Clone the existing C:\Program Files\Microsoft Dynamics CRM\CRMWeb\CRMReports\viewer\viewer.aspx to .\viewerNoToolbar.aspx
Update in viewerNoToolbar.aspx the following code to remove the Toolbar from SSRS :-
function reportLoaded()
{
if (oFrame.readyState === "complete")
{
addToRecent();
}
to
function reportLoaded()
{
if (oFrame.readyState === "complete")
{
addToRecent();
var frameDoc = oFrame.contentDocument || oFrame.contentWindow.document;
var reportViewerToolbar = frameDoc.getElementById("reportViewer_Toolbar");
reportViewerToolbar.style.display = "none";
}
Insert a DIV to hide the existing CRM toolbar and move the existing resultFrame IFrame out of the DIV
</div>
<table cellspacing="0" cellpadding="0" width="100%" height="100%">
to
</div>
<div style="display: none">
<table cellspacing="0" cellpadding="0" width="100%" height="100%">
also close it off by changing the below from
</table>
</body>
to (and remove the existing td block related to resultFrame)
</table>
</div>
<table cellspacing="0" cellpadding="0" width="100%" height="100%">
<tr style="height: 100%;">
<td colspan="2" style="padding-top: 5px; padding-bottom: 10px; border-width: 2px;
border-color: #000000">
<div id="divResultFrame">
<iframe name="resultFrame" id="resultFrame" src="/_static/blank.htm" style="border: 0px;
margin: 0px; padding: 0px; width: 100%; height: 100%;"></iframe>
</div>
</td>
</tr>
</table>
</body>
Change your query to
var url="/"+orgname+"/crmreports/viewer/viewerNoToolBar.aspx?
and don't worry about rc:Toolbar
Good luck
Glenn

According to this article Pass parameters and options with a URL in SQL Reporting Services you did right.
But when I tried to do the same I've got this error wich tells absolutely nothing.
To see what's going on I would recommend you to use tracing, see this post CrmDiagTool 2011, this tool will make using it much easier.
My guess is that you need to make those parameters optional somehow.
Sorry, don't have time to dive into it.
If you don't solve it in a couple days let me know we'll work it out.

Related

Get error "may be sending automated queries" in Google Drive API using Soup (Vala)

The Google Drive API at times returns a response of an HTML page with contents:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Sorry...</title>
<style>
body {
font-family: verdana, arial, sans-serif;
background-color: #fff;
color: #000;
}
</style>
</head>
<body>
<div>
<table>
<tr>
<td><b>
<font face=sans-serif size=10>
<font color=#4285f4>G</font>
<font color=#ea4335>o</font>
<font color=#fbbc05>o</font>
<font color=#4285f4>g</font>
<font color=#34a853>l</font>
<font color=#ea4335>e</font>
</font>
</b></td>
<td style="text-align: left; vertical-align: bottom; padding-bottom: 15px; width: 50%">
<div style="border-bottom: 1px solid #dfdfdf;">Sorry...</div>
</td>
</tr>
</table>
</div>
<div style="margin-left: 4em;">
<h1>We\'re sorry...</h1>
<p>... but your computer or network may be sending automated queries. To protect our users, we can\'t process
your request right now.</p>
</div>
<div style="margin-left: 4em;">See Google Help for
more information.<br /><br /></div>
<div style="text-align: center; border-top: 1px solid #dfdfdf;">Google Home
</div>
</body>
</html>
This happens when calling the https://www.googleapis.com/drive/v3/files/file_id endpoint with the aprameter "?alt=media" in order to get the content of the file.
I've not exeded any quota.
I don't get this error in other calls like https://www.googleapis.com/drive/v3/files?q=trashed = False .
The error ocurrs in an app that I've written in Vala (https://github.com/bcedu/VGrive). This app has been working well without getting this error. It started ocurring when Google changed the authentication, instead of using an access token in a query parameter, using an HTTP header instead. I made this changes and the problem was solved in some requests (like searching files as I mentioned) but I'm still getting the error when I want to download files.
I'm using the Google Drive api v3
I'm using the vala library Soup (a well known Gnome library https://developer.gnome.org/libsoup/unstable/) to make the requests. You can test the error with the following code:
public static int main(string[] args) {
// THIS DOESNT WORKS
string method = "GET";
string file_id = ""; // Some Google Drive File ID
string uri = "https://www.googleapis.com/drive/v3/files/%s?alt=media".printf(file_id);
string access_token = ""; // A valid acces_token
Soup.Session session = new Soup.Session ();
Soup.Message message = new Soup.Message (method, uri);
message.request_headers.append("Authorization", "Bearer %s".printf(access_token));
session.send_message (message);
// Response is stored in message.response_body.data
print("AUTOMATED QUERY ERROR:\n"+(string)message.response_body.data+"\n\n");
// THIS WORKS
uri = "https://www.googleapis.com/drive/v3/files?q=trashed = False and 'root' in parents";
session = new Soup.Session ();
message = new Soup.Message (method, uri);
message.request_headers.append("Authorization", "Bearer %s".printf(access_token));
session.send_message (message);
// Response is stored in message.response_body.data
print("THIS WORKS, SO TOKEN IS PASSES CORRECTLLY...\n"+(string)message.response_body.data+"\n");
return 0;
}
Run the test with:
valac --pkg libsoup-2.4 GoogleTest.vala
./GoogleTest
You will need to install:
libsoup-2.4
valac
I expect both a succesfull response or an autthentication error, but not an html page saying I'm making automated queries. It is an API, it is suposed to be used by apps and not only humans.
Am i missing something from google drive API? Do i have to do an additional step to pass the bearer token throught Soup?
As discussed in the comments the problem is being tracked in the google forums.
https://issuetracker.google.com/153717392
The issue there seemed to have been solved and OP has no longer problems using the API.

loading dynamic photo using ASP.net with IMAGE.ImageUrl

I am using asp.net for a website and i am using nested master page.
i want to load dynamic a picture from the nested master page.
the html code in the nested master page is:
<a runat="server">
<asp:Image id="usrimg" src="" alt="Image Not Found" runat="server" />
</a>
the C# code is:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var u = Session["user"] as Worker;
String s = "/images/" + u.UserName + ".jpg";
usrimg.ImageUrl = s;
}
}
note that the path is correct( i debug the code behind)
but always the source in the inspect is unknown.
this is the result :
<img id="userphoto_ContentPlaceHolder1_usrimg" src="" alt="Image Not Found">
i solve it by using :
usrimg.Attributes["src"] = s;

ASP.NET - Image not rendered at runtime

Please help me with a weird issue I am facing in my web application. In the scenario below an image (company logo) is not getting rendered at runtime.
I have designed a very simple page named default2.aspx. The intention of this page is to work as a maintenance page in case of an application downtime.
The logic of implementing this by have a SiteIsActive switch key in web.config with "N" representing downtime.
In the Global.asax I have implemented the "Application_BeginRequest" method to check for the SiteIsActive flag and redirect to default2.aspx. While the functionality is working fine with both the SiteIsActive cases, the image (company logo) is not getting rendered in default2.aspx at runtime. However when I directly browse the default2.aspx by setting it as startup page the logo/image is displayed at runtime.
Note: This scenario is being tried from within visual studio 2015 and is not yet being deployed.
Any suggestions would be appreciated as to why the image is not being rendered when the switch (SiteIsActive = N) and being re-directed to default2.aspx
Code for default2.aspx below:
<%# Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<head runat="server">
<link href="~/Image/BrightSide.css" rel="stylesheet" type="text/css"/>
<title>AAA</title>
</head>
<body id="bodyindex">
<div id="wrap" style="width: 1000px;">
<div id="header">
<table style="background-color: rgb(255, 255, 255);" width="100%">
<tbody>
<tr>
<td width="15%">
<img src="~Image/AAA_Image.jpg" /></td>
<td width="32%">
<h1 style="font: bolder 3.1em 'Trebuchet MS',Arial,Sans-serif;">AAAy</h1>
</td>
<td align="right" width="53%"> </td>
</tr>
</tbody>
</table>
<br>
<br>
</div>
<div id="content-wrap">
<h1 align="center">The AAA website is currently unavailable due to scheduled maintenance.<br />
<br />
We are sorry for the inconvenience. Please re-visit the site.
<!-- <div class="caption" style="height:50px;"><div class="content"></div></div> -->
</h1>
<br>
<br>
<br>
<div style="clear: both;">
<!-- wrap lower portion-->
<div style="width: 75%; float: left;">
<h1> </h1>
<p> </p>
</div>
<br>
<!-- content-wrap ends here -->
</div>
<!-- footer starts here -->
<div id="footer">
<div class="footer-left">
<p class="align-left">
� 2017 <strong>AAA</strong>
</p>
</div>
<div class="footer-right">
<p class="align-right"> </p>
</div>
</div>
<!-- footer ends here -->
<!-- wrap ends here -->
</div>
</div>
</body>
</html>
Code defined in Application_BeginRequest.
The logic I implemented is within the two comments "// Logic for maintainence page". Also please note I have included some logic for IPAddress exclusion where for such IPs the regular websites will be shown and for others the maintenance page is dispalyed:
public void Application_BeginRequest(object sender, EventArgs e)
{
// Check the application validity
LicenseHelper.CheckValidity();
// Enable request debugging
// Application start events
FirstRequestInitialization(sender, e);
CMSRequest.BeforeBeginRequest(sender, e);
// Check if Database installation needed
if (InstallerFunctions.InstallRedirect())
{
return;
}
// Enable debugging
SetInitialDebug();
CMSRequest.AfterBeginRequest(sender, e);
// Logic for maintainence page
HttpContext context = HttpContext.Current;
string maintenancePage = System.Configuration.ConfigurationManager.AppSettings["Maintenance_RedirectTo"];
string siteIsActive = System.Configuration.ConfigurationManager.AppSettings["SiteIsActive"];
if (siteIsActive != null && siteIsActive.Equals("N", StringComparison.CurrentCultureIgnoreCase))
{
if (!context.Request.Path.Equals("/" + maintenancePage))
{
string exceptionIP = string.Empty;
string ips = System.Configuration.ConfigurationManager.AppSettings["Maintenance_Redirect_Exceptions"];
string ipAddress2 = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ipAddress2 == null || ipAddress2.ToLower() == "unknown")
ipAddress2 = Request.ServerVariables["REMOTE_ADDR"];
//ipAddress2 = "127.0.0.1";
if (ips != null)
{
System.Collections.Generic.List<string> ipAddressList = new System.Collections.Generic.List<string>(
ips.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries));
if (ipAddressList != null)
{
exceptionIP = ipAddressList.Find(delegate (string ipAddress)
{
return ipAddress.Equals(ipAddress2, StringComparison.CurrentCultureIgnoreCase);
});
}
}
if (exceptionIP == null || exceptionIP.Length <= 0)
{
this.Response.Redirect(maintenancePage);
}
}
}
// Logic for maintainence page
}

Some links with accented characters and dot doesn't open on Chrome, Explorer and Edge

I'm dealing with an issue at my work that I had never seen. When I'm developing I use always Firefox and generating an HTML by a XSL on JAVA I tested the links on Firefox and ALL works, even if they have or not accented characters or dots at the end of the URL (https://..........some words**.**) When you click on the link it sends you to the bottom of the page where is the info of that link (https://...............#name displayed on the clicked link
But today, my boss openned an issue telling me that on Chrome, Edge and Explorer, the links with accented characters or dots on the URL can't be openned. So I tried click some links and on Chrome, some works and others not work..... On Explorer and Edge none works. I'm very rookie dealing with display browser problems.
So, I've checked the code that transforms the XML template to HTML and I tried to add this two lines:
transformer.setOutputProperty(OutputKeys.METHOD, "text/html");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
(With these two lines, the browser shows a ? instead the accented characters, I don't know why)
Moreover, on the XML template I've added:
<xsl:template match="/">
<html>
<head>
<meta charset="UTF-8"></meta>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> </meta>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> </meta>
</head>
...... more template code ......
But the result it's the same. On Firefox all links work, on Chrome some yes and some no, on Explorer and Edge none of them.
Why it works on Firefox and on the rest of all no?
Regards.
------------- UPDATE -------------
The file it's generated by a desktop application and creates a html file that it's opened at the end of the process by the default browser of the system.
I thought that the problem was not encoding on UTF-8, but I've changed the encondig to the original (ISO-8859-1) because the result it's the same.
The code is:
public URL createHTML(ReportValidationTO validationTO) throws IOException, SAXException, IntrospectionException {
try {
PATH_XML = File.createTempFile("validacion", ".xml").getAbsolutePath();
String path_xsl = ConfigurationParametersManager.getParameter(PATH_XSL);
BeanReader reader = new BeanReader();
reader.registerBeanClass("validation", ReportValidationTO.class);
BeanWriter bWriter = initHTML();
AttributeDescriptor a1 = new AttributeDescriptor("validationName");
ElementDescriptor e1 = new ElementDescriptor();
e1.addAttributeDescriptor(a1);
XMLBeanInfo xmlInfo = new XMLBeanInfo(ReportValidationTO.class);
xmlInfo.setElementDescriptor(e1);
bWriter.write("validationTO", validationTO);
bWriter.flush();
InputStream inputXSL = getClass().getResourceAsStream(path_xsl);
URL retorno = (URL) transformToHTML(PATH_XML, inputXSL);
return retorno;
} catch (Exception e) {
logger.info("No se pudo cargar el archivo ");
logger.info("El error fue : " + e.getClass().getName() + " " + e.getMessage());
return null;
}
}
private BeanWriter initHTML() throws IOException, MissingConfigurationParameterException {
FileWriter fWriter = new FileWriter(PATH_XML);
BeanWriter bWriter = new BeanWriter(fWriter);
bWriter.setIndent("\t");
String path_xsl = ConfigurationParametersManager.getParameter(PATH_XSL);
URL url_xsl = getClass().getResource(path_xsl);
String encoding = "<?xml version=" + "\"1.0\"" + " encoding=" + "\"ISO-8859-1\"" + " standalone=" + "\"yes\"" + "?>";
String xslFile = "<?xml-stylesheet type=" + "\"text/xsl\"" + " href=" + "\"" + url_xsl + "\"" + "?>";
bWriter.writeXmlDeclaration(encoding);
bWriter.writeXmlDeclaration(xslFile);
return bWriter;
}
And then:
private URL transformToHTML(String sXMLData, InputStream inputXSL) {
try {
Source xmlSource = new StreamSource(new File(sXMLData));
Source xsltSource = new StreamSource(inputXSL);
StringWriter cadenaSalida = new StringWriter();
Result bufferResultado = new StreamResult(cadenaSalida);
TransformerFactory factoriaTrans = TransformerFactory.newInstance();
Transformer transformador = factoriaTrans.newTransformer(xsltSource);
transformador.setOutputProperty(OutputKeys.METHOD, "html");
transformador.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
transformador.transform(xmlSource, bufferResultado);
File salida = File.createTempFile("validacion", ".html");
FileOutputStream out = new FileOutputStream(salida);
byte[] bytesSalida = cadenaSalida.toString().getBytes();
out.write(bytesSalida);
out.close();
URL url = salida.toURI().toURL();
return url;
} catch (Exception e) {
logger.info("\nERROR EN TRANSFORM HTML VALIDACIONES");
logger.error(LoggerHelper.getStackTrace(e));
return null;
}
}
------- Update with some HTML code -------
<font face="Verdana" color="#003399"><b>Title Example</b></font>
<ul type="disc">
<li>
<font size="-1" face="Verdana">SERIALNUMER2: Frase con acentos, el estado está en ejecución</font><a><font size="-1" color="red" face="Verdana">
[Fails:
3
]
</font></a>
</li>
</ul>
<a name="Linked Example"></a><b><font size="+1" face="Verdana">After click on the second link from above, it should send you here</font></b>
<hr color="black" WIDTH="100%">
<br>
<a name="Link 1: Frase con acentos, el estado est%C3%A1 en ejecuci%C3%B3n"></a><b><font size="-1" face="Verdana">Validacion:</font></b><font size="-1" face="Verdana">SERIALNUMER2: Frase con acentos, el estado está en ejecución</font>
<br>
<b><font size="-1" face="Verdana">Solution:</font></b><font size="-1" face="Verdana">None</font>
<br>
<br>
<table WIDTH="100%" BORDER="1">
<caption>
<font size="+1" face="Verdana" color="red">Error list</font>
</caption>
<tr>
<th align="LEFT" bgcolor="dddddd"><b>column1</b></th><th align="LEFT" bgcolor="dddddd"><b>column2</b></th><th align="LEFT" bgcolor="dddddd"><b>column3</b></th><th align="LEFT" bgcolor="dddddd"><b>column4</b></th><th align="LEFT" bgcolor="dddddd"><b>column5</b></th><th align="LEFT" bgcolor="dddddd"><b>column6</b></th><th align="LEFT" bgcolor="dddddd"><b>column7</b></th>
</tr>
<tr>
<td align="LEFT">2000</td><td align="LEFT">15</td><td align="LEFT">019</td><td align="LEFT">001</td><td align="LEFT">1087</td><td align="LEFT">0</td><td align="LEFT">B</td>
</tr>
<tr>
<td align="LEFT">2000</td><td align="LEFT">15</td><td align="LEFT">019</td><td align="LEFT">001</td><td align="LEFT">1113</td><td align="LEFT">0</td><td align="LEFT">B</td>
</tr>
<tr>
<td align="LEFT">2000</td><td align="LEFT">15</td><td align="LEFT">069</td><td align="LEFT">001</td><td align="LEFT">125</td><td align="LEFT">0</td><td align="LEFT">B</td>
</tr>
</table>
<br>
<b><font size="-1" color="#FF0000" face="Verdana">
Total:
3
fail(s)
</font></b>
<br>
<b><font size="-1" face="Verdana">
The end
:
</font></b><b><font color="red" size="-1" face="Verdana">Problems found</font></b>
On the snippet, here:
href="#Link 1: Frase con acentos, est%C3%A1 en ejecuci%C3%B3n"
and here:
name="Link 1: Frase con acentos, el estado est%C3%A1 en ejecuci%C3%B3n"
To make it work on Edge, I need replace %C3%A1 with a and %C3%B3 with o if you want to get redirected to the position on the page where are the details of the link.
So what is the aim, writing out a HTML file with the Java Transformer? In which encoding? And if you want to write out a file why are you using a StringWriter in between? Consider to declare in the XSLT with e.g. <xsl:output method="html" encoding="UTF-8"/> which output method and encoding you want, then, to write with your Transformer to the HTML file named validacion.html simply create a new StreamResult("validacion.html") (https://docs.oracle.com/javase/8/docs/api/javax/xml/transform/stream/StreamResult.html#StreamResult-java.lang.String-)and pass that to the transform method. And don't put any encoding info (like <meta http-equiv="content-type" content="text/html; charset=UTF-8"> literally into the HTML your XSLT creates, the Transformer will do its job based on the xsl:output directive, as long as you let it do its job with properly used StreamResult. Trying to create a temporary StringWriter result and converting a string to bytes to write them out to a FileOutputStream is not necessary and probably causing encoding/decoding inconsistency.
<font>
is depreciated. Use css font-family instead. Web browsers have a default font-family that they will fall back to if any of the css font-families are not installed on the OS. IE has an accessibility setting to "Ignore font styles specified on web pages".
Wikipedia uses this style rule.
.uc {
font-family: Code2000, "TITUS Cyberbit Basic", "Doulos SIL",
"Chrysanthi Unicode", "Bitstream Cyberbit",
"Bitstream CyberBase", Thryomanes, Gentium, GentiumAlt,
"Lucida Grande", "Arial Unicode MS", "Microsoft Sans Serif",
"Lucida Sans Unicode";
font-family /**/:inherit; /* resets fonts for everyone but IE6 */
}
add the uc class to the body tag.
To debug your web page output use the DOM Explorer of the dev tool, to inspect the css rules applied to the element or textContent of an element.
Ok, finally I got the links work. Thanks to Rob Parsons and Martin Honnen
The problems where these two:
The URL at href was being generated with spaces (thanks Martin)
href="#Link 1: Frase con acentos, est%C3%A1 en ejecuci%C3%B3n" <- I removed the spaces on the XSLT with translate(validationName, ' ','-')
On the reference of the href link as these was a legacy code, there was name but in HTML5 it's deprecated so now you must use "id" so here:
I changed:
**name**="Link 1: Frase con acentos, el estado est%C3%A1 en ejecuci%C3%B3n" (also removed spaces with translate(validationName, ' ','-'))
by
**id**="Link 1: Frase con acentos, el estado est%C3%A1 en ejecuci%C3%B3n" (also removed spaces with translate(validationName, ' ','-'))

asp.net updatepanel

I have update panel in Modal popup extender, and I have script manager in masterpage, but when I run the website, I get following error :
[InvalidOperationException: The control with ID 'udpOutterUpdatePanel' requires a S
criptManager on the page. The ScriptManager must appear before any controls that need it.]
System.Web.UI.UpdatePanel.get_ScriptManager() +303
System.Web.UI.UpdatePanel.RegisterPanel() +170
System.Web.UI.UpdatePanel.RegisterPanel() +132
System.Web.UI.UpdatePanel.OnInit(EventArgs e) +53
System.Web.UI.Control.InitRecursive(Control namingContainer) +605
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Control.InitRecursive(Control namingContainer) +323
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2241
When I add scriptmanager in my page it gives error as "Only one instance is allowed".
Please help me out of this.
I am using windows 7,vs2010
Thanks in advance...
Are you sure your "Modal popup extender" is linked to the master page with "ContentPlaceHolderID" which contains the "ScriptManager" from the maste page ? so that it can load the "ScriptManager" !
<%# ... MasterPageFile="~/MasterFile.master" .... %>
<asp:Content ID="myContent" ContentPlaceHolderID="ContentScriptManager" Runat="Server">
</asp:Content>
You can also add ScriptManagerProxy in content page, which enables nested components such as content pages to add script to pages when a ScriptManager control is already defined in a parent element.