Wer mal auf die Schnelle einen ConnectionString für einen Datenzugriff unter .NET braucht:
Auf dieser Webseite sind ConnStrings für jeden erdenklichen Zugriff zu finden…
http://www.connectionstrings.com
(Danke an Thomas Br. / Thomas G.)
Wer mal auf die Schnelle einen ConnectionString für einen Datenzugriff unter .NET braucht:
Auf dieser Webseite sind ConnStrings für jeden erdenklichen Zugriff zu finden…
http://www.connectionstrings.com
(Danke an Thomas Br. / Thomas G.)
Wer den MaskedEdit Externder aus dem AJAX-Toolkit (http://www.asp.net/ajax) einsetzt, kenn die Problematik, dass ein Datumswert, der nicht im Format dd.mm.yyyy eingegeben wird sondern als dd.mm.yy, zurück ins 20. Jahrhundert (also 19xx) zurückkatapultiert wird…
Auch die Eigenschaft Century nutzt hier nichts, denn diese wird schlicht und ergreifend ignoriert.
Eine kleine Änderung im MaskedEditBehavior.js lehrt den MaskedEdit Extender das 21. Jahrhundert:
Zeile 2005 – Funktion: _GetDateElementText
if (Y4)
{
if (aux !=”" && aux.length < 4)
{
while (aux.length < 4)
{
aux = “0″ + aux;
}// DIESE ZEILE EINFÜGEN –>
if (aux.substring(0,2) == ‘00′) aux = ‘2′+aux.substring(1,4);
// <–m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = aux;
}
}
else [...]
Jetzt springt der MaskedEditExtender automatisch auf 20xx um…
Voraussetzung für die Umsetzung dieses Beitrags ist ein funktionierender Report auf Basis des SQL Reporting Services. Hierbei ist es unerheblich mit welcher SQL Server Version (2005[8.0] oder 2008[9.0]) gearbeitet wird. Die asp.NET-Umsetzung habe ich im Framework 2.0 umgesetzt.
Zunächst brauchen wir eine (in meinem Fall serialisierbare) Klasse, die das Interface Microsoft.Reporting.Webforms.IReportsServerCrendentials zur Ausführung des Reports implementiert:
[Serializable]
public class ReportCredentials :
Microsoft.Reporting.WebForms.IReportServerCredentials
{
string _userName, _password, _domain;public ReportCredentials(string userName, string password,
string domain)
{
_userName = userName;
_password = password;
_domain = domain;
}public System.Security.Principal.WindowsIdentity ImpersonationUser
{
get
{
return null;
}
}public System.Net.ICredentials NetworkCredentials
{
get
{
return new System.Net.NetworkCredential
(_userName, _password, _domain);
}
}public bool GetFormsCredentials(out System.Net.Cookie authCookie,
out string userName, out string password,
out string authority)
{
userName = _userName;
password = _password;
authority = _domain;
authCookie = new System.Net.Cookie
(“.ASPXAUTH”, “.ASPXAUTH”, “/”, “Domain”);
return true;
}
}
Auf der aspx-Page, auf der der Report eingebunden werden soll, muss ein Steuerelement “ReportViewer” und folgender Code eingefügt werden:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ReportViewer1.ShowCredentialPrompts = false;
ReportViewer1.ServerReport.ReportServerCredentials =
new ReportCredentials(“UserName”, “Passwort”, “”);
ReportViewer1.ProcessingMode =
Microsoft.Reporting.WebForms.ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl =
new System.Uri(“http://reportserver/ReportServer”);
ReportViewer1.ServerReport.ReportPath =
“/Path2Report/ReportName”;ReportViewer1.ServerReport.Refresh();
}
}
Auch eine Parametrisierung aus der Webpage ist möglich:
ReportParameter[] param = new ReportParameter[1];
param[0] = new ReportParameter(“ReportParam”, txtParameter.Text);ReportViewer1.ServerReport.SetParameters(param);
Und zu guter letzt muss noch ein Abschnitt in der web.config im Abschnitt <system.web><httpHandlers> angelegt werden:
<add verb=”*” path=”Reserved.ReportViewerWebControl.axd” type = “Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />
Nachdem ich ja bereits das “puristische” modale Popup beschrieben habe, hier nun die elegantere Lösung.
Zunächst benötigen wir ein einfaches Javascript, dass wir im Head-Bereich der aufrufenden Seite platzieren:
<script type=“text/javascript“>
function Dialog()
{
var ret=window.showModalDialog(“popup.aspx”,window, ↙
“dialogHeight: 500px; dialogWidth: 800px; status: No; center:yes”
);if (ret == “1″)
{
document.location.href = document.URL;
}
}
</script>
Der Aufruf dieses modalen Popups kann über zwei Wege erfolgen:
- per Link im html-Quelltext:
<a href=”javascript:void(0);” onClick=”Dialog();”>Popup öffnen</a>
- per Aufruf durch einen <asp:Button>:
Um den Aufruf durch einen <aps:Button> zu realisieren muss dem Button ein Attribut zugewiesen werden:
protected void Page_Load(object sender, EventArgs e)
{
myButton.Attributes.Add(“onClick”, “javascript:Dialog();”);
}
Dieses Attribut bewirkt nun, dass beim Klicken des Buttons das Javasript Dialog() aufgerufen werden.
Hinweis:
In der aufgerufenen Seite (also im Popup) sollte im Head folgender Tag platziert werden:
<base target=“_self”/>
Wenn der Tag fehlt, öffnet jeder Link und jeder Klick auf einen Button ein neues Browserfenster ausserhalb unseres modulen Popups.
Letzte Kommentare