Hallo zusammen,
vielen Dank erstmal für die Infos. Da ich keine große Erfahrung in asp.net habe (und dies mein erstes Projekt ist 😃) , würde ich erstmal die Stichpunkte, die ihr mir genannt habt nachgehen und dann evtl. auf euch mit weiteren Fragen zukommen.
Viele Grüße
Mekallica
Hallo Forum,
ich versuche auf Basis dieses OrgCharts https://developers.google.com/chart/interactive/docs/gallery/orgchart
eine ASP.NET MVC 5-Anwendung zu programmieren. Mein Problem liegt daran, dass ich den Inhalt des DataTables (also in data.addRows([***]) ) nicht mit razor füttern kann.
Die Daten stammen aus einer MongoDb. Im HomeController schicke ich die Daten in die View mittels
public ActionResult Index()
{
IList<Person> personen = db.GetAll();
return View(personen);
}
Meine View sieht so aus
@model IEnumerable<MyProject.Models.Person>
@{
ViewBag.Title = "Test";
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", { packages: ["orgchart"] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('string', 'Manager');
data.addColumn('string', 'ToolTip');
var data2 = [];
@foreach (var item in Model)
{
@:data2.push("[{v:'"+"@item.Id"+ "', f:'" + "@item.Name"+ "'}, " + "'" + "@item.Parent" + "', '" + "@item.Titel" + "']");
}
console.log(data2);
data.addRows(data2);
var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));
chart.draw(data, { allowHtml: true });
}
</script>
<div id="chart_div"></div>
Wenn ich mittels Console.log(data2) die Ausgabe des Arrays ín Data.addRows eingebe, dann klappt das.
data.addRows([ <--
[{ v: 'd8b9b06b-0dfd-2949-a4f0-122143dfb65d', f: 'Eins' }, '', 'Titel1'],
[{ v: '8cbe910c-ca9c-8846-afc7-e7a3cbf35431', f: 'Zwei' }, 'd8b9b06b-0dfd-2949-a4f0-122143dfb65d', 'Titel2'],
[{ v: 'ebd05ee2-1ceb-5945-85c4-da6814ec4c0c', f: 'Drei' }, 'd8b9b06b-0dfd-2949-a4f0-122143dfb65d', 'Titel3'],
[{ v: '74fd4f1a-7b34-d244-9b3b-b3733dc1c721', f: 'Vier' }, '8cbe910c-ca9c-8846-afc7-e7a3cbf35431', 'Titel4'],
[{ v: 'c2f5a1df-5dc9-e14f-93d3-38573b562482', f: 'Fünf' }, 'ebd05ee2-1ceb-5945-85c4-da6814ec4c0c', 'Titel5'],
[{ v: 'd4bf4366-f2b8-044d-a733-711f56a101d2', f: 'Sechs' }, 'ebd05ee2-1ceb-5945-85c4-da6814ec4c0c', 'Titel6'],
[{ v: 'e0729578-5709-194c-b2da-423c57971e68', f: 'Sieben' }, '74fd4f1a-7b34-d244-9b3b-b3733dc1c721', 'Titel7'],
[{ v: '80dda164-3ced-1e47-9127-53bfe4e07f9e', f: 'Acht' }, 'c2f5a1df-5dc9-e14f-93d3-38573b562482', 'Titel8'],
[{ v: '988bb6ce-cd24-7f4f-9122-095b7aff4cb8', f: 'Neun' }, '74fd4f1a-7b34-d244-9b3b-b3733dc1c721', 'Titel9']
] <--
);
Hat das vielleicht mit den ersten eckigen Klammern von
data.addRows
zu tun? und wie kriege ich sie in data2 rein?
Bin für euere Hilfe sehr dankbar
Mekallica
Ich fand beide Filme super geil 😃
Hallo,
in einer WPF-Anwendung zeige ich ein mittels XSLT erstelltes HTML-Dokument in ein System.Windows.Controls.WebBrowser an. Das funktioniert hervorragend. Nun möchte ich den Content dieses WebBrowsers ausdrucken.
Zum Ausdrucken verwende ich ein Windows.Forms.WebBrowser, da dieser mir direkt eine Print-Funktion anbietet (funktioniert auch super). Auf dem Papier sehe ich aber den header und footer, die normalerweise vom IE erzeugt werden. Nun möchte ich diese ändern.
Mit dem Code unten versuche ich den Inhalt des headers und footers kurz zu überschreiben und nach dem Drucken zu reseten. Das funktioniert leider nicht! Erst nachdem die Registry geschlossen wurde, schickt die Anwendung den Content des WebBrowsers an den Drucker und leider mit header und footer. Mit ManualResetEvent versuchte ich auch vergeblich. Hier bleibt er allerdings hängen.
Habt ihr eine Lösung für mich?
Viele Grüße
//ManualResetEvent mre = new ManualResetEvent(false);
string oldFooter = String.Empty, oldHeader = String.Empty;
private void Button_Click(object sender, RoutedEventArgs e)
{
//mre.Reset();
System.Windows.Forms.WebBrowser webbrowser = new WebBrowser();
webbrowser.Url = new Uri(htmlFile);
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName, true))
{
if (key != null)
{
oldFooter = (string)key.GetValue("footer");
oldHeader = (string)key.GetValue("header");
key.SetValue("footer", String.Empty);
key.SetValue("header", String.Empty);
webbrowser.DocumentCompleted += webbrowser_DocumentCompleted;
//mre.WaitOne();
key.SetValue("footer", oldFooter);
key.SetValue("header", oldHeader);
}
}
}
void webbrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
System.Windows.Forms.WebBrowser printDoc = sender as WebBrowser;
printDoc.Print();
printDoc.Dispose();
//mre.Set();
}
Hallo,
versuch mal mit
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = filename,
Verb = "PrintTo",
Arguments = "\"" + "Brother DCP-J315W Printer" + "\"",
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden
};
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
if (p != null && p.HasExited == false)
p.Kill();
Viele Grüße
Joa ziemlich krasse Sache... Danke!
Danke dir für die rasche Antwort und den super Tipp!
Ich werde mich erstmals mit FluentAPI auseinandersetzen um anschließend mit diesem Prinzip + Code-First meine Custom SimpleMembership zu erstellen.
Hast du eine gute Empfehlung zu FluentAPI oder soll ich schlicht danach googlen?
Viele Grüße
Mekallica
Verwendete Systeme: VS2012/C# & Sql Server 2014
Guten Abend zusammen,
erstmals vielen Dank für diese hervorragende Seite!!!! Bin neu hier und hoffe auf eine qualifizierte Antwort
Ich versuche gerade als Übung eine Internetseite zu programmieren, die es erlaubt nach bestimmten Eigenschaften der registrierten Personen zu suchen und diese zu filtern. ZB. Gib mir alle Menschen, die Horror-Filme mögen.
ASP bzw. EF erstellt nach dem ersten Start der Anwendung (nach Anpassung des ConnectionStrings, AccountModels, InitializeSimpleMembershipAttribute) die nötigen SimpleMemberShip-Tabellen (UserProfile, webpages_Membership, webpages_Roles...) Jetzt möchte ich zB folgende Tabelle per EF anliegen (später mit ihr primär auch arbeiten)
UserData
==========
* UserId
* Vorname
* Nachname
* Geburtsdatum
* BildId
* FilmGenre
* ---
* ---
und eine 1:1 Beziehung zwischen "UserProfile" und "UserData" über "UserId" herstellen.
Könnt ihr mir bitte dabei helfen, wie ich das "am saubersten" anstellen kann? Ich habe das ganze Forum über vier Tagen durchsucht und leider keine relevanten Informationen gefunden.
Beste Grüße
Mekallica