Laden...
Avatar #avatar-2253.png
math55 myCSharp.de - Member
Entwickler Deutschland Dabei seit 15.03.2007 314 Beiträge
Benutzerbeschreibung

Forenbeiträge von math55 Ingesamt 314 Beiträge

22.09.2010 - 09:02 Uhr

Hallo, aaalso ich habe wie gesagt die DropDownList, diese binde ich im !IsPostBack und nachdem der Button gedrückt wurde. Hier mal der Code zum Binden der DropDown:


private void BindDropDown()
{
	List<string> files = Directory.GetFiles(GetSavePath()).ToList();
	DDL_ExportFileDownLoad.Items.Clear();

	DDL_ExportFileDownLoad.DataBind();
	DDL_ExportFileDownLoad.Items.Insert(0, new ListItem(""));
}

Dazu kommt dann der Code im ButtonEvent:


protected void IB_ExportInvoices_Click(object sender, ImageClickEventArgs e)
{
    File.WriteAllText(fullSavePath, builder.ToString());
    BindDropDown();
    OfferFileForDownload(fullSavePath);
}

So, dann eben noch der Code zum Download:


private static void OfferFileForDownload(string path)
{
	FileInfo downloadFile = new FileInfo(path);
	HttpContext.Current.Response.Clear();
	HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", downloadFile.Name));
	HttpContext.Current.Response.AddHeader("Content-Length", downloadFile.Length.ToString());
	HttpContext.Current.Response.ContentType = "application/octet-stream";
	HttpContext.Current.Response.WriteFile(downloadFile.FullName);
	HttpContext.Current.Response.End();
}

Wie würde ich den den HttpHandler bauen, damit er nur den Download handled, ich kann ja den Button nicht per PostBackUrl auf den Handler leiten, da bei Knopfdruck noch andere Dinge passieren (Datei erstellen, einige Überprüfungen etc.), nicht nur der Download. Ich hoffe, der Code reicht aus, wäre für nen guten Tipp sehr dankbar 😃.

Danke

20.09.2010 - 14:04 Uhr

Hallo, ich binde die DropDown einmal im Page_Load, wenn !IsPostBack und dann nochmal nachdem die Datei erstellt wurde. Es gibt also keine Möglichkeit, die DropDown zu aktualisieren?

Grüße

20.09.2010 - 09:13 Uhr

Hi, ich denke, das Problem ist, dass ich zudem auch noch die gerade erzeugte Datei zum Download anbiete. Das sind warscheinlich dann 2 Sachen für den Server und das bringt alles durcheinander. Bisher war der Ablauf so:

1. Datei wird per Knopfdruck erzeugt (IB_ExportInvoices_Click)
2. DropDown wird gebunden
3. Datei wird zum Download angeboten

Das passiert alles automatisch, bis auf den Knopfdruck natürlich. Kann es sein, dass es an meiner Vermutung liegt? Was gäbe es denn noch für Möglichkeiten, vom UpdatePanel mal abgesehen? Ich habe es mit

Page.Response.Redirect(Page.Request.Url.ToString(), true);

nach dem Dateidownload versucht, klappt auch nicht.

Danke 😃

20.09.2010 - 09:02 Uhr

Hi, ich binde das im Page_Load, richtig. Wo wäre es denn besser?

Grüße

17.09.2010 - 17:27 Uhr

Hallo, ich habe auf meiner Seite einen ImageButton, welcher Dateien auf dem Server erzeugt. Dazu gehört eine DropDownList, welche die Dateien anzeigt. Funktioniert auch alles ganz gut. Jetzt möchte ich aber, dass die DropDownList die gerade erzeugte Datei ebenfalls anzeigt.

Es scheint nicht zu reichen, DataBind aufzurufen, die neue Datei ist nicht enthalten, erst nachdem ich erneut auf die Seite gehe. Ich habe mich also an einem UpdatePanel versucht:


...
 <asp:ImageButton ID="IB_ExportInvoices" runat="server" ImageUrl="themes/resources/images/buttons/CreateDocuments.gif"
                    ToolTip="SAP FSCS Datei exportieren" OnClick="IB_ExportInvoices_Click"></asp:ImageButton>
....
<asp:UpdatePanel ID="UP_ExportInvoices" runat="server"  UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:DropDownList ID="DDL_ExportFileDownLoad" runat="server" AutoPostBack="true"
                            OnSelectedIndexChanged="DDL_ExportFileDownLoad_SelectedIndexChanged">
                        </asp:DropDownList>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="IB_ExportInvoices" EventName="Click"/>
                    </Triggers>
                </asp:UpdatePanel>

Der IB_ExportInvoices button ist nicht im UpdatePanel enthalten. Funktioniert leider so nicht (Fehlermeldung) ... was mache ich falsch?

Die Fehlermeldung ist:

Laufzeitfehler in Microsoft JScript: Sys.WebForms.PageRequestManagerParserErrorException: Die vom Server empfangene Nachricht konnte nicht analysiert werden. Häufige Ursachen für diesen Fehler sind: Änderung der Antwort durch Aufrufe von Response.Write(), Antwortfilter, HttpModules oder aktivierte Serverablaufverfolgung.
Details: Fehler beim Analysieren in der Nähe von "12345678901200908182".

Danke 😃

20.07.2010 - 10:21 Uhr

Hallo, ich habe hier Code dieser Art:


public string Method1(int someInt) //Unterschied
{
    if(someBoolean)
        return "test";

    if(someOtherBoolean)
    {
        return "dfjakdsad";
    }
    else
    {
        string myStr = getString(someInt) //Unterschied
        return myStr;
    }
}

public string Method1(decimal someDecimal)
 {
    if(someBoolean)
        return "test";

    if(someOtherBoolean)
    {
        return "dfjakdsad";
    }
    else
    {
        string myStr = getString(someDecimal)
        return myStr;
    }
 }

Die erste der beiden Methoden wird bereits mehrfach verwendet und die Signatur darf nicht verändert werden. Die zweite der beiden ist hinzu gekommen und enthält viel doppelten Code. Der Unterschied iust die Signatur und der Aufruf von getString(). Natürlich sind die beiden Methoden nur ein Beispiel. Wie könnte ich die sinnvoll refactoren?

Danke 😃

02.07.2010 - 14:25 Uhr

Hallo,

ich habe einen lokalen Report (rdlc) und in diesem werden Daten einmal gruppiert und dann Zwischensummen berechnet. Eine Gruppe könnte z.B. so aussehen:

InvNr Amount
1A 1000
2A 2000
3B 3000
1A 1000

Wenn ich jetzt eine Summe über die Spalte Amount bilde, kommt der Wert für 1A einmal zu oft vor. Ich brauche eine Summe von 6000, nicht 7000. Also habe ich mir Custom Code geschrieben, welche in der Detailzeile die Werte aufsummiert, aber nur, wenn der Wert InvNr nicht doppelt vorkommt. Dann hole ich mir diese Summe und versuche Sie in dem Footer der Gruppe darzustellen. Berechnung klappt prima, nur wird der Footer leider vor dem Detail aisgeführt und die Werte in der Summe sind somit jeweils um eins verschoben. Hat jemand eine Idee, wie ich das lösen könnte?

Bin für jeden Hinweis dankbar!!

Grüße

10.06.2010 - 14:24 Uhr

Gelöst, es lag am UpdatePanel, das hat geholfen:


ScriptManager scriptManager = ScriptManager.GetCurrent(Page);
scriptManager.SupportsPartialRendering = false;
scriptManager.EnablePartialRendering = false;

10.06.2010 - 14:17 Uhr

Hallo,

ich habe ein Problem mit dynamischen RDLC (local mode) Dateien als Grundlage für Reports. Ich kann während der Erstellung meines Reports kein DataSet angeben, dies kann erst zur Laufzeit erfolgen. Ich habe mehrere stored procedures in der Datenbank, welche mir allesamt eine unterschiedliche Anzahl von Spalten liefern können. Ich habe es hinbekommen, mir die Daten in einem DataTable speichern zu lassen, aber nun komme ich nicht weiter. So soll es funktionieren:

  1. Jemand wählt an der Oberfläche aus einer Dropdown den Namen des Reports aus
  2. Die entsprechende Prozedur wird mit Parametern aufgerufen (z.B. Report15)
  3. Ein DataTable oder DataSet oder was andres kommt zurück und wird an den ReportViewer gebunden
  4. Die entpsrechenden Spalten werden angezeigt

Wie könnte ich das wohl anstellen?

Danke 😃

09.06.2010 - 16:32 Uhr

Hallo, ich habe ein UpdatePanel in meiner MasterPage. Leider musste ich feststellen, dass der ReportViewer zum Anzeigen von Reports unter diesen Umständen nicht funktioniert ... er schmeisst jede Menge JSscript Fehler. Hat dieses Problem bereits jemand lösen können?

Danke 😃

09.06.2010 - 16:30 Uhr

Aha, habe es gelöst. Ich habe einfach einen lokalen (local mode) erstellt. Dieser hat dann die Endung rdlc und funzt einwandfrei.

07.06.2010 - 17:04 Uhr

Ich habe aber keinen Reportserver angelegt...gehen tut es trotzdem. Komische Sache. Wenn ich in die EIgenschaften meines Projektes gehe, steht da auch kein Server unter "TargetServerURL".

Was fehlt denn da noch?

Grüße

07.06.2010 - 16:55 Uhr

Wie würde ich es denn anstellen, aus der Codebehind alle Reports zu holen? Wie komme ich an die Server URL?

Danke

07.06.2010 - 15:09 Uhr

Hallo,

wie würde man denn jetzt also vorgehen, wenn man später verschiedene Berichte haben möchte, die je nach Kunde unterschiedlich aussehen? Ich verstehe es so, dass man dann die lokale Variante nutzt? Vom Grunde her sind die aber komplett gleich in der Erstellung? Wenn ich den Bericht auf dem Server gerendert habe, kann ich diesen dann auch in der Anwednung abrufen?

Danke 😃

07.06.2010 - 13:33 Uhr

Hallo,

ich arbeite mich gerade in die Reports von Microsoft ein. Jetzt meine Frage: Ich kann ja mittels eines Report Projektes (Berichtsserverprojekt) im Visuals Studio einen Report erstellen. Was ich mich allerdings frage ist, wie ich diesen dann in eine ASP.NET Anwendung einbause? Es ist ja auch möglich, direkt den ReportViewer in die Entwurfsansicht einer aspx Seite zu posten und dann dort den Report zu erstellen. Wo ist der Unterschied zu einem Berichtsserverprojekt?

Danke 😃

25.05.2010 - 11:50 Uhr

Ich habe mir jetzt erstmal eine enum gebaut, welche die Buttons darstellt:


public enum MyButtons
{
	Button1 = 1,
	Button2 = 2,
	Button3 = 3,
	Button4 = 4,
	Button5 = 5,
	Button6 = 6
}

Jetzt bleibt nur noch die Frage, wie ich jetzt die Sache mit den Buttons entsprechend der angehakten Checkboxen mache.

25.05.2010 - 11:37 Uhr

Hallo, ich habe an meiner Oberfläche 6 unterschiedliche Buttons. Die Sichtbarkeit der Buttons wird per Checkbox konfiguriert. Das heisst, ich habe an einer Stelle meiner Oberfläche pro Button eine Checkbox, wenn diese gesetzt ist, soll der Button sichtbar sein. Ich würde das gerne mit einer TinyInt Spalte machen. Wie kann ich jetzt also sagen, zeige nur Button 2, Button 5 und Button 6? Ich habe ja nur eine Zeile zur Verfügung in der Tabelle.

Danke 😃

21.05.2010 - 10:19 Uhr

Ich werd mir das mal durchlesen, danke vorerst!!

21.05.2010 - 08:40 Uhr

Hallo,

also ich habe mal eine Frage zu Controls. Was ist jetzt genau was? Es gibt ja CompositeControls, WebControls, UserControls und CustomControls. Was ist jetzt aber was? Kann mir da mal jemand eine Übersicht geben, was man wofür nimmt?

Danke 😃

07.05.2010 - 11:10 Uhr

Hallo, ich habe ein DataGrid und einen Button. Die PageSize ist auf 10 gestellt. Wenn ich auf den Button drücke, dann soll eine neue Zeile eingefügt werden und editierbar sein. Jetzt die Frage:

Angenommen, es sind 10 Datensätze im Grid, der Button wird gedrückt um einen neuen Eintrag hinzuzufügen. Jetzt muss ja eine Seite mehr im Grid sein, als vorher, nämlich 2 statt 1. Wie konnte ich das wohl anstellen?

Danke 😃

06.05.2010 - 17:13 Uhr

Hallo, ich habe in meiner Codebehind den Pageindex gesetzt, und zwar so:


myGrid.CurrentPageIndex = myGrid.PageCount - 1;
myGrid.Bind();

Er springt auf die letzte Seite, was auch korrekt ist. Allerdings Frage ich mich, ob das auch ohne erneutes Binden möglich ist?

Danke 😃

06.05.2010 - 17:10 Uhr

Das ist korrekt, hätte ich dazu sagen sollen.

06.05.2010 - 16:38 Uhr

Heisst?

06.05.2010 - 16:35 Uhr

Richtig! Habe es jetzt allerdings mit LINQ gelöst:


IList<Type> inst = (IList<Type>) GetIList();
inst.OrderBy(x => x.DUEDATE);

Klappt prima uns ist sogar noch kürzer 😃.

DANKE!

06.05.2010 - 16:07 Uhr

Versuchs mal so, ungetestet!


for (int i = 0; i < arrUser.Count; i++) {
   
      for (int j = i + 1; j < arrUser.Count; j++)
     {
         int tmp = arrUser[i][j];
         arrUser[i][j] = arrUser[j][i];
         arrUser[j][i] = tmp;
     }
}

06.05.2010 - 15:52 Uhr

Hallo, ich habe hier folgenden Code:


IList<Type> inst = (IList<Type>) GetIList();
inst.ToList().Sort((x, y) => x.DUEDATE.CompareTo(y.DUEDATE));

Allerdings ist inst danach immer noch unsortiert. Was mache ich falsch? DUEDATE ist ein ganz normales DateTime.

Danke 😃

05.05.2010 - 16:22 Uhr

In dem UserControl habe ich den Code hier:


protected void DG_Grid_PageIndexChanged(object sender, System.EventArgs e)
{
	//mach was
}

Er geht niemals zu "mach was", egal welchen Pager ich drücke. Irgendwie ist der event nicht korrekt angehangen. Habe dem Grid auch OnPageIndexChanged="DG_Grid_PageIndexChanged" hinzugefügt, es geht einfach nicht. Ich binde die Daten an das Grid in der Page_Load des UserControls, und zwar so:


if(!IsPostBack)
    Bind();

Die ItemCommands jeder Zeile aus dem Grid funktionieren, nur das Paging nicht. Was auch komisch ist, die Anzeige wieviele Treffer es gab sieht immer so aus:

1--1 von -1 Treffern

Das trifft zu, selbst wenn es 50 Einträge hat. Links für die entsprechenden Seiten werden allerdings angezeigt, anklicken bringt nur nichts.

Niemand eine Idee? 😃

05.05.2010 - 14:15 Uhr

War mein Fehler, habe es gelöst. Sämtliche Controls waren teil des UserControls...war nur ein Copy&Paste Fehler. =)

05.05.2010 - 14:14 Uhr

Hallo,

ich habe ein DataGrid in meinem UserControl. Beim Laden des Controls wird eine Datenquelle an das DataGrid gebunden. Leider funktioniert das PAging nicht. Ich klcike drauf, aber nix passiert. So sieht mein grid aus:


<asp:DataGrid ID="DG_Grid" runat="server" AllowPaging="True" PageSize="10" EnableViewState="True"
                AllowSorting="False" DataKeyField="DUEDATE" OnItemDataBound="DG_Grid_ItemDataBound" OnItemCommand="DG_Grid_ItemCommand"
OnPageIndexChanged="DG_Grid_PageIndexChanged">

Jemand Ideen? Der PageIndexChange event ist angehangen.

05.05.2010 - 14:10 Uhr

Habe es gelöst!


public event EventHandler Refresh;
//...
protected virtual void OnRefresh(EventArgs e)
{
	EventHandler refreshEvent = Refresh;
	if (refreshEvent != null)
		Refresh(this, e);
}

Immer wenn ich das event starten feuern will, rufe ich einfach OnRefresh auf. Dann wird die passende Methode in der apsx gerufen.

Danke

04.05.2010 - 14:51 Uhr

Nein doch nicht, in meiner OnInit Methode in der aspx.cs, ist mein UserControl noch null. Ich habs jetzt so:


//ganz oben in codebehind
protected MyControl Control;

Dann habe ich weiter unten in der OnInit, diesen Code:


//Control ist hier null ??
Control.EventMethode += new EventHandler(MethodeInASPX);

Was fehlt denn noch?

04.05.2010 - 14:42 Uhr

Ich denke, ich habs 😃. Danke

04.05.2010 - 14:20 Uhr

Also sagen wir mal, die Veränderung passiert, wenn ich im USerControl eine DropDown verändere. Wie genau mache ich es dann?

Grüße

04.05.2010 - 13:44 Uhr

Hallo, folgender Code:


//aspx.cs
usercontrol.myObject = myObject;
//...
//ascx.cs
myObject.someProperty = "12345";
//jetzt muss myObject.someProperty in der ASPX den Wert "12345" haben

Das Property sieht im UserControl so aus:


public Type myObject 
{
	get
	{
		if (ViewState["myObject"] != null)
			return (Type) ViewState["myObject"];
		return bla; // default value
	}
	set
	{
		ViewState["myObject"] = value;
	}
}

Jetzt werden Properties dieses Objektes im ASCX verändert und müssen sich auch auf myObject in der ASPX durchschlagen. Wie stelle ich das an und ist das überhaupt ne gute Idee?

Danke 😃

04.05.2010 - 08:42 Uhr

Keiner Ideen?

03.05.2010 - 16:59 Uhr

Hallo,

ich habe eine ganz normale ASPX Seite vorliegen. Ich möchte jetzt einen kleinen Teil daraus in einem UserControl unterbringen. Der Teil bestet aus einer DropDown, einem Grid und einem Button.

Das Problem an der Sache ist, dass im ItemDataBound event des Grids sowas gemacht wird:


Label someLabel = e.Item.FindControlRecursive("LB_SomeLabel") as Label;

Wenn ich das Grid im UserControl haben will, muss ich ja auch die ItemDataBound Methode mitnehmen. Allerdings findet er dann das Label (und einige andere Controls) nicht mehr im UserControl, da es sich um eine Label von der ASPX handelt, in welche ich dann das USerControl einbinde. Gibt es hier eine elegante Lösung? Der Grund, warum die Controls im ItemDataBound geladen werden, ist der, dass sie entsprechend des ListItemType ausgeblendet werden/angezeigt werden.

Danke 😃

29.04.2010 - 10:58 Uhr

Danke für die Antworten, ich habe eine IList, kann also RemoveAll nicht nutzen, oder doch?

Grüße

29.04.2010 - 10:35 Uhr

Hallo, ich habe folgenden Code:


IList<Type> types = myList;
foreach (Type t in myList)
{
	if (t.something = somethingelse)
		types.Remove(t);
}
myList = types;

Allerdings sagt er mir, dass die Auflistung verändert wurde. Ich sehe allerdings nicht, wo das Problem ist. Ideen, bzw. wie kann ichs anders machen?

Danke 😃

19.04.2010 - 09:09 Uhr

Hi, wie stelle ich es dann wieder dar? Mit visible gehts ja nicht.

Danke 😃

16.04.2010 - 15:08 Uhr

Hallo, habe folgenden Code:


public static bool MyMethod(int someid, params string[] types)
{...}

Kann ich hier auch Func nutzen?


public static Func<int, ?params?, bool> MyMethod = ???

Danke 😃

15.04.2010 - 14:25 Uhr

Ganz normal, ich vergebe eine ID und das runat Attribut im Textmodus und trotzdem sind sie nicht da. Eine Lösung ist aber:
1.Designer Datei löschen 1.rechts klicken auf die aspx 1."in Webanwendung konvertieren" wählen

Grüße

15.04.2010 - 11:34 Uhr

Hallo, gibt es eine Möglichkeit, die Designdatei zu refreshen? Habe oft das Problem, dass ich Controls hinzufüge, die dann aber in der Designdatei nicht vorhanden sind. Speichern hilft nix.

Danke 😃

15.04.2010 - 11:23 Uhr

Funzt! Was auch ginge:


textbox.Attributes["style"] = "display:none";

Habe ich rausgefunden, nachdem ich Deinen Tip hatte.

Danke 😃

15.04.2010 - 10:28 Uhr

Ich muss es aber in der Codebehind machen, da es eben entsprechend von Konditionen mal da sein muss und mal nicht. Kann ich den Style auch in der Codebehind setzen?

Danke 😃

15.04.2010 - 09:55 Uhr

Hallo, ich habe auf eminer aspx Seite ein Textfeld, welches ich so auf unsichtbar setze:


field.visible = false;

Auf der gleichen Seite ist auch eine DropDown, welche bei IndexChange eine JavaScript Methode aufruft, die so auf das Textfeld zugreift:


document.forms[0].ctl00_Content_TX_field.value

Hier erhalte ich dann allerdings die Meldung "document.form[0] is Null or Not an Object", was wohl auch klar ist, da es ja nicht mehr da ist. Wie könnte ich das wohl anders lösen?

Jemand Ideen?

Danke!

07.04.2010 - 09:17 Uhr

Hallo, kann man irgendwie nach Werten in der Schnellüberwachung suchen? Also sagen wir mal, ich Suche nach dem Wert von "NodeName", kann ich das dann irgendwo eingeben?

Danke 😃

06.04.2010 - 13:44 Uhr

Habe diesen Code:


for(int i = 0; i < 20; i++)
{
     methode1();
}

public void methode1()
{
     methode2();
}

public void methode2()
{
    string str = "test";
    str += "13fsdfsdf";
    str += "13fsdfsdf";
    str += "13fsdfsdf";
    str += "13fsdfsdf";
}

Macht so natürlich keinen Sinn, ist aber auch nur ein grober Ausschnitt. Man sagt ja, in Schleifen nutzt man den StringBuilder, wäre es aber jetzt hier trotzdem sinnvoll?

Danke 😃

31.03.2010 - 09:57 Uhr

Doch, das muss so, ist nur ein grobes Beispiel...der betrag wird in Wirklichkeit mit den Daten in class2 berechnet. Class1 und Class2 sind nicht gleich.

31.03.2010 - 09:46 Uhr

Hallo, habe folgenden Code:


foreach(Class1 class1 in class1List)
{
	foreach(Class2 class2 in class2List)
	{
		class1.betrag = class2.betrag;
	}
}

Schaue ich mir jetzt die class1List an, dann ist der Betrag unverändert. Class1 und Class2 sind meine Klassen und die Listen jeweils generische Listen mit Typen von entweder Class1 oder Class2.

Danke 😃

01.03.2010 - 10:16 Uhr

Hallo,

gibt es für die Zertifizierungen von MS eine Gültigkeitsdauer? Habe gerade 70-536 bestanden und frage mich jetzt, wie lange die gilt?

Danke 😃