Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Nuramir
Thema: MCTS: .Net 2.0 oder 3.5?
Am im Forum: Smalltalk

Hallo,

mittlerweile gibt es die englische Version des Trainingsbuches zum Examen 70-536.


MCTS Self-Paced Training Kit (Exam 70-536): Microsoft.NET Framework - Application Development Foundation

# Verlag: Microsoft Press Corp.; Auflage: 2. A. (30. November 2008)
# Sprache: Englisch
# ISBN-10: 0735626197
# ISBN-13: 978-0735626195

Ich bin auch am überlegen welche Zertifizierung ich machen soll. Eigentlich hätte ich
lieber deutsche Literatur, doch zu 3.5 gibt es praktisch noch nichts. Die Trainingsbücher
für ASP.NET und Windows.Forms sind noch nichtmal erschienen. Sollen laut Microsoft
Press aber im nächsten halben Jahr erscheinen.

Wer noch warten kann geht wohl besser gleich auf 3.5, wer es aber eilig hat muss sich
wohl mit 2.0 begnügen.

Thema: Generische Eigenschaft erstellen, deren Typ erst zur Laufzeit bekannt wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hmm, irgendwie muss es gehen. Wie sonst kann es Methoden oder Eigenschaften von Komponenten geben die genau dieses machen? Leider habe ich den Source nicht zur Verfügung.

Bei den DevExpress.Xpo Komponenten z.B. gibt es generische Methoden ala

public object Evaluate<ClassType>(...)

Wenn ich das allerdings so deklariere ist ClassType unbekannt obwohl ich alles in uses deklariert habe was im Bsp. auch ist. Es ist auch unmöglich ClassType irgendwo zu finden. Wie machen die das? Vielleicht habe ich auch einfach nur etwas übersehen oder verstehe es falsch?

Thema: Generische Eigenschaft erstellen, deren Typ erst zur Laufzeit bekannt wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich möchte eine generische Eigenschaft und keine generische Klasse definieren.

Dies ist nicht möglich da meine Klasse von einer nicht generischen Klasse erbt.

Thema: Generische Eigenschaft erstellen, deren Typ erst zur Laufzeit bekannt wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich möchte gerne eine Eigenschaft generischen Typs erstellen. Mit typeof kann ich nur den Typ einer Klassendefinition laden.

Praktisch wie List<T> wobei T erst zur Laufzeit bekannt ist.

Thema: Generische Eigenschaft erstellen, deren Typ erst zur Laufzeit bekannt wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

folgendes Problem stellt sich mir und die Suche hat mir dabei leider nicht wirklich geholfen. Ich benötige für eine Klasse eine generische Eigenschaft vom Typ List<T>, dabei wird der Typ in der Liste erst zur Laufzeit bekannt. Ich habe es mit folgendem probiert, doch dies führt nur zum Fehler das er T nicht kennt. Wie definiere ich denn nun eine Eigenschaft des Typs List<T>? Geht das überhaupt?


class MyClass
{
  public List<T> DataSource<T>
  {
    ...
  }
}

MyClass obj = new MyClass();
obj.DataSource = new List<irgendwas>();

Thema: Webrequest - Umlaute werden falsch dargestellt
Am im Forum: Web-Technologien

Ich hatte da mal ein ganz ähnlich gelagertes Problem. Es lag schlicht am falschen Encoding.

Soweit ich weis benutzt .NET im Unicode als Standard. Wenn du aber einen UTF8 Formatierten Text hast, bekommst du genau solche Zeichen raus. Versuche mal das ganze nach UTF8 zu konvertieren.


byte[] streamData = // lese deinen Stream in ein Byte-Array.
byte[] encodedData = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, streamData);
string text = Encoding.UTF8.GetString(encodedData);

Ein ähnlicher Algorythmus hatte mir damals geholfen.

Eventuell reicht aber auch nur folgendes zu machen.


string text = Encoding.UTF8.GetString(streamData);

Thema: DropDownList funktioniert nicht innerhalb DetailsView
Am im Forum: Web-Technologien

Zitat
bleibt das DrowDown-Feld leer, weil Find Controll scheinbar nichts findet.

FindControl kann nichts finden wenn nicht entsprechende Templates mit dem Control vorhanden sind. Wenn dein View in Insert oder Update Modus ist, dann gibt es das Control nicht und es kann folglich auch nicht gefunden werden.

Thema: DropDownList funktioniert nicht innerhalb DetailsView
Am im Forum: Web-Technologien

Musst du nicht die Tabelle an die DropDownList binden?

ddl.DataSource = dataSet.Tables["Laender"]; ?

Woher soll das ddl denn wissen das es den Inhalt aus Laender nehmen soll?

Oder gibt es dafür ein DefaultView?

Thema: DropDownList funktioniert nicht innerhalb DetailsView
Am im Forum: Web-Technologien

Hallo,

es reicht nicht nur das ItemTemplate zu definieren. Dies wird nur erstellt wenn sich das DetailsView im Modus Readonly befindet. Für die anderen Modi musst du entsprechende Templates anlegen.

<EditItemTemplate>
<InsertItemTemplate>

usw.

In jedes Template muss deine ComboBox hinzugefügt werden.

Bsp.:


<asp:TemplateField>
  <ItemTemplate>
    <asp:DropDownList ID="ddl_land" runat="server" DataTextField="Land" DataValueField="ID"/>
  </ItemTemplate>
  <EditItemTemplate>
    <asp:DropDownList ID="ddl_land" runat="server" DataTextField="Land" DataValueField="ID"/>
  </EditItemTemplate>
  <InsertItemTemplate>
    <asp:DropDownList ID="ddl_land" runat="server" DataTextField="Land" DataValueField="ID"/>
  </InsertItemTemplate>
</asp:TemplateField>

Thema: Software mit Web Panel?
Am im Forum: Web-Technologien

Meistens besitzt die Server-Software einen eigenen internen Webserver. Diesen müsstest
du selber programmieren. Einige Sprachen bieten dafür aber einiges an Komponenten zur Verfügung.

Noch eine Möglichkeit ist das die Server-Software eine API bereitstellt die z. Bsp. mit ASP.NET angesprochen werden kann. Dann wird einfach noch eine Website im IIS eingerichtet die mit dieser API arbeitet. D. h., die UI läuft auf Basis als echte ASP.NET Applikation, die BU aber in dieser API.

Thema: In FormView-Templates dynamisch Felder ein-/ausblenden
Am im Forum: Web-Technologien

Ok, ich habe es nun gelöst indem ich eine nicht sichtbare TextBox im Template liegen habe die an das Datenfeld gebunden wird.

Dann habe ich im Codebehind ein Property erstellt welches auf den Wert der TextBox verweist.

So konnte ich im ASPX den Wert abfragen und dynamisch meine Felder erzeugen. Das geht aber doch bestimmt einfacher, bzw. ohne diese Umwege.

Thema: TextBox mit Initialwert und Datenbindung
Am im Forum: Web-Technologien

Hmm, ich hatte da einen ähnlichen Fall und es ganz einfach gelöst indem ich beim Page_Load die Werte in den Textboxen gesetzt hatte.


<InsertTemplate>
<asp:TextBox ID="Name" Text='<%# Bind("Name") %>'></asp:TextBox>
</InsertTemplate>

Im Page_Load...


if (FormView.CurrentMode = FormViewMode.Insert)
{
  ((TextBox)FormView.FindControl("Name")).Text = "Neuer User";
}

Thema: In FormView-Templates dynamisch Felder ein-/ausblenden
Am im Forum: Web-Technologien

Hallo, ich habe dazu leider nichts gefunden und hoffe ihr könnt mir weiterhelfen.

In einem FormView sollen je nachdem was im Datensatz drin steht bestimmte Felder ein./ausgeblendet werden.

Ich habe schon versucht im EditItemTemplate mit If-Konstrukten zu arbeiten. Doch finde ich keinen schönen Weg den Wert des Feldes auszulesen um dann zu entscheiden was ich anzeigen möchte.

Es soll praktisch so aussehen:


<EditItemTemplate>
<table>
<% if (Datensatzfeld == Wert) { %>
  <tr>
    <td>Vorname/Nachname:</td>
    <td><asp:TextBox ID="VORNAME_TextBox" Text='<%# Bind("VORNAME") %>'></asp:TextBox>&nbsp;<asp:TextBox ID="NACHNAME_TextBox" Text='<%# Bind("NACHNAME") %>'></asp:TextBox></td>
  </tr>
<% } else { %>
  <tr>
    <td>Suchname:</td><td><asp:TextBox ID="SUCHNAME_TextBox" Text='<%# Bind("SUCHNAME") %>'></asp:TextBox></td>
  </tr>
<% } %>
</table>
</EditItemTemplate>

Wobei Datensatzfeld aus einem Objekt kommt das durch einen ObjectDataSource über ein BLL Layer geholt wird.

Wie komme ich an den Wert des Datensatzes in diesem Kontext heran?
Gibt es dafür eine elegantere Lösung?

Ich danke schonmal für eure Antworten und Vorschläge!

Thema: Web Custom Control - Namespace wird nicht erkannt?
Am im Forum: Web-Technologien

Hast du in der Codebehind-Datei auch das Using für den Namespace drinne?

Thema: Session Objekt in Datenbank speichern
Am im Forum: Web-Technologien

Ich könnte mir vorstellen das er auf persistente Zustände für den User abziehlt und das die Objekte dann auch wieder zur Verfügung stehen wenn der User sich neu anmeldet und seine Arbeit fortsetzen möchte. Das wäre für mich so ziemlich der einzigste Grund dies zu tun, ob das allerdings auch der Grund des TE ist?

Thema: Session Objekt in Datenbank speichern
Am im Forum: Web-Technologien

Speichere deine Objekte serialisiert in ein großes varchar feld. Beim Abrufen musst du es nur zurück serialisieren und du hast wieder dein Objekt. Als Key könnte man sich die SessionId selber merken. Die Klasse die du Speichern möchtest muss nur serialisierbar sein.

Thema: Probleme mit ObjectDataSource und Update(Object)
Am im Forum: Web-Technologien

Hey, das funktioniert prima.

Dann werde ich die Werte in den Views casten anstatt die Eigenschaften alle als Object zu deklarieren und intern zu casten.

Vielen Dank!

Thema: Probleme mit ObjectDataSource und Update(Object)
Am im Forum: Web-Technologien

Danke für den Hinweis, aber genau das möchte ich ja verhindern.

Da bleibt mir wohl nur übrig die Eigenschaften vom Typ Object zu machen und intern zu casten. Schade eigentlich, da ich gerne eine typisierte Schnittstelle gehabt hätte.

Thema: Probleme mit ObjectDataSource und Update(Object)
Am im Forum: Web-Technologien

Hallo,

Warum funktioniert folgendes Beispiel nicht? Sobald die Daten über den ObjectDataSource aktualisiert werden sollen (Methode SetUser) kommt der Fehler:

"Der Wert von Parameter "Geburtstag" kann nicht von "System.String" in "System.DateTime" konvertiert werden."

Warum kann der ObjectDataSource die Eigenschaft von Person nicht setzen?

Mir geht es darum nicht alle einzelnen Parameter wie:

SetPerson(string name, DateTime geburtstag
übergeben zu müssen da ich Klassen habe die weit mehr als 100 Eigenschaften besitzen.

Ich hoffe ihr könnt mir helfen.


public class Person
{
    private string _name = "";
    private DateTime _geburtstag = DateTime.Today;

    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            _name = value;
        }
    }

    public DateTime Geburtstag
    {
        get
        {
            return _geburtstag;
        }
        set
        {
            _geburtstag = value;
        }
    }

	public Person()
	{
	}

    public static Person GetPerson()
    {
        // Person laden...
    }

    public static void SetPerson(Person person)
    {
        // Person speichern...
    }
}

        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
            DataObjectTypeName="Person" SelectMethod="GetPerson" TypeName="Person" 
            UpdateMethod="SetPerson">
            <UpdateParameters>
                <asp:Parameter Name="person" Type="Object" />
            </UpdateParameters>
        </asp:ObjectDataSource>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="ObjectDataSource1">
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Geburtstag" HeaderText="Geburtstag" 
                    SortExpression="Geburtstag" />
            </Columns>
        </asp:GridView>

Thema: UserControl Array
Am im Forum: Web-Technologien

Wieso?

Mein zweites Beispiel ist doch genau das was du oben geschrieben hast. Ich habe als DataSource halt zur Demo eine simple Collection gewählt. Anstatt ein Repeater habe ich die CheckBoxList verwendet. Im Endeffekt ist das doch genau das selbe.

Mein erstes Beispiel zielte auf die Aufgabenstellung direkt ab, da ging es darum dynamisch CheckBox-Controls zu erzeugen und wieder auszuwerten. Das Beispiel funktioniert einwandfrei, also auch nichts falsches.

Trotzdem würde ich dafür fertige Controls mit Datenbindung empfehlen.

Thema: UserControl Array
Am im Forum: Web-Technologien

Anbei ein Beispiel mit einem DataSource und einer CheckBoxList mit DataBinding.

DataItem-Klasse:


public class CheckBoxItem
{
    private string _name = "";
    private bool _checked = false;

    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            _name = value;
        }
    }

    public bool Checked
    {
        get
        {
            return _checked;
        }
        set
        {
            _checked = value;
        }
    }
    public CheckBoxItem(string name, bool value)
	{
        _name = name;
        _checked = value;
	}
}

DataSource-Klasse:


public class CheckBoxList : System.Collections.Generic.List<CheckBoxItem>
{
	public CheckBoxList()
	{
        for (int i = 0; i < 100; i++)
        {
            Add(new CheckBoxItem("CheckBox" + i.ToString(), false));
        }
	}
}

ASP-UserControl:

<asp:CheckBoxList ID="CheckBoxList1" runat="server" 
    DataSourceID="ObjectDataSource1" DataTextField="Name" DataValueField="Checked">
</asp:CheckBoxList>

<asp:thumbsup:bjectDataSource ID="ObjectDataSource1" runat="server" 
    SelectMethod="ToArray" TypeName="CheckBoxList"></asp:thumbsup:bjectDataSource>

Thema: UserControl Array
Am im Forum: Web-Technologien

Hallo Cindy,

ich bin auch ASP.NET Anfänger aber erfahrender Windows -Entwickler.

Mich hat deine Problemstellung interessiert und habe mich gleich mal an ein Beispiel
gesetzt. Du kannst die CheckBox-Collection direkt der Controls-Eigenschaft zuweisen
und im PostBack wieder auslesen. Da die CheckBox-Collection im Init erzeugt wird, werden die geposteten Daten auch behalten.


public partial class WebUserControl : System.Web.UI.UserControl
{
    public WebUserControl()
    {
        Init += new EventHandler(WebUserControl_Init);
    }

    void WebUserControl_Init(object sender, EventArgs e)
    {
        for (int i = 0; i < 100; i++)
        {
            CheckBox checkBox = new CheckBox();
            checkBox.ID = "CheckBox" + i.ToString();
            checkBox.Text = checkBox.ID;
            checkBox.Width = new Unit(100);
            Controls.Add(checkBox);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            int i = 0;
            foreach (Control item in Controls)
            {
                CheckBox checkBox = item as CheckBox;
                if (checkBox != null)
                {
                    if (checkBox.Checked)
                    {
                        i++;
                    }
                }
            }
            this.CountLabel.Text = i.ToString();
        }
    }
}