Laden...
Avatar #avatar-2678.jpg
Tomot myCSharp.de - Member
Junior-Softwaredeveloper C# und ASP.Net Düsseldorf Dabei seit 21.12.2007 691 Beiträge
Benutzerbeschreibung

Forenbeiträge von Tomot Ingesamt 691 Beiträge

20.07.2009 - 15:42 Uhr

Mach aus dem BoundField wo du als ValueField deine ID hast ein Templatefield mit einem Literal drin.

Im RowDataBound Event überprüfst du dann die Werte des DataItems und befüllst das Literal entsprechend.
Beachte du die Row vom Typ DataRow sein muss (dazu siehe Control in GridView finden)

20.07.2009 - 12:24 Uhr

Die "StandardEvents" verwenden die normalen EventArgs, die eben keine zusätzlichen Variablen bereitstellen.

Solltest du im Web-Bereich programmieren, kann hilft die die CommandArgument Property vom Button.

Spontan fallen mir zwei Möglichkeiten ein:
* Du castet das Objekt, das du in der eventbehandelnen Methode hast, in das entsprechende Objekt, was das Event geworfen hat. Wenn du z.b. mehrere Checkboxen hast, die mit der gleichen eventbehandelnen Methode bearbeitet werden, dann kannst du auf das Objekt schließen, welches das Event geworfen hat. Dies ist nützlich, wenn du auf Properties dieses Objekt zugreifen musst (z.B. die Checked Property um in Abhängigkeit andere Aktionen auszuführen)

* Du greifst im der eventbehandelne Methode auf Instanzvariablen zu.

18.07.2009 - 14:58 Uhr

Hi, und herzlichen Willkommen im Forum.

Also wie ich deinen Beitrag nun interpretiere, hast du deine Hauptform und erzeugst darin eine Klasse. Mit dieser Klasse willst du nun wieder auf Form1 zugreifen. Dafür musst du dann allerdings einen anderen Ansatz wählen. Alles was du dafür wissen brauchst, steht hier drin [FAQ] Kommunikation von 2 Forms

18.07.2009 - 11:35 Uhr

Einfacher wäre es vielleicht das absolut Fehlerbefüllte GridView nicht zu verwenden 😉

Dann nenn mal bitte ein paar Szenarien, wo es sich nicht so verhält wie es sollte, damit wir alle was lernen.

17.07.2009 - 16:33 Uhr

Wenn du näheres über die Seite wissen willst, von der du gekommen bist, dann schau dir mal die UrlReferrer Property der HttpRequest Klasse an.

16.07.2009 - 15:21 Uhr

Da kann ich mich meinen Vorredner nur anschließen, du wirst die DataTextField / DataValueField Properties im Markup falsch gesetzt haben.

Wenn du noch Hilfe benötigst, dann poste uns mal das Markup vom Control mit der ID "drpSIM"

16.07.2009 - 14:49 Uhr

Eine Möglichkeit wäre, die AutoPostBack Property der ListBox auf true zu setzen. Da dies aber, wie der Name ja schon sagt, zu einem Postback führt, würde ich die ListBox in ein UpdatePanel packen, damit nur das ListBox Control neugerendert wird.

Alternativ schau mal, ob du mit der EnableViewState der Page auf true weiterkommst, das wäre deutlich einfacher.

16.07.2009 - 14:44 Uhr

Der Parameter wäre die ID von deinem Control, in diesem Falle "ScoringAutoCompleteExtender".

In der DataBound-Methode musst du zusätzlich noch den RowType überprüfen, da du nur bei Datenzeilen dein Control hast. (Beim Header und beim Footer ist das Control nicht in der aktuellen Row). Das machst du wie folgt:

if (e.Row.RowType == DataControlRowType.DataRow)
15.07.2009 - 13:07 Uhr

Mit der FindControl Methode.

Manufactorer.FindControl("EJGDropdownList1")

Das ganze musst du dann noch in den entsprechenden Objekttypen casten.

((EJGDropdownList)Manufactorer.FindControl("EJGDropdownList1"))
// setzt vorraus, das die Klasse auch so heißt und nicht nur der TagName

13.07.2009 - 13:10 Uhr

Hi.

Ich kenn deine Komponente zwar nicht, aber hast du eventuell ein OnRowDataBound-Event oder ähnliches? Dieses könnte dir vielleicht weiterhelfen.

11.07.2009 - 01:06 Uhr

Hund leitest dann mit

Response.Redirect(ddlValue.SelectedItem.ToString());  

Du kannst ja, je nachdem welches Control und welche Weiterleitung (asp:HyperLink mit NavigateUrl oder in einem Button-Klick Eventhandler ein Response.Redirect) du verwendest, den Wert der DDL auslesen und als Get-Parameter für die NavigateUrl verwenden, wenn sich das anbietet.

Alternativ wäre da die Verwendung einer Sessionvariable. Beim Aufruf von Seite2 würdest du diesen Wert wieder auslesen.

11.07.2009 - 01:02 Uhr

Wäre ja blöd wenn ich für jede Seite extra einen Scriptmanager + AjaxControl festlegen muss.

Auf den Unterseiten musst du ja dann einen ScriptManagerProxy verwenden. Aber wo siehst du denn das Problem, auf jeder Seite im Markup den Assemblyverweis hinzuzufügen?

09.07.2009 - 13:01 Uhr

Benutzt du eventuell ein UpdatePanel?

09.07.2009 - 12:59 Uhr

Wenn dein Bild mit auf dem gleichen Server liegt, dann verwendest du ja sicherlich relative Pfade. Diese kannst du dann mit Server.MapPath auflösen und dann mit System.IO.File.Exists überprüfen.

Wenn es eine externe Bildquelle ist, dann musst du da anders rangehen.

09.07.2009 - 12:56 Uhr

Workaround: Primärschlüssel entfernen, Beziehungen setzen und Primärschlüssel wieder drauf setzen

08.07.2009 - 16:42 Uhr

Du kannst im Markup Die SelectedValue Property mit der BindingSource entsprechend benutzen.

08.07.2009 - 11:11 Uhr

Was ist denn deine Zielplattform? Im CompactFramework scheint es solch eine Funktionalität ja bereits zu geben, zumindest bei meinem Windows Mobile 6.1

08.07.2009 - 00:14 Uhr

verwendetes Datenbanksystem: <SQL Server 2005>

Nabend.
Ich stehe gerade an dem Punkt, an dem ich an einer bestehenden Tabelle, über den Tabellen-Designer Foreign-Key Beziehungen hinzufügen will. (siehe http://technet.microsoft.com/de-de/library/ms189049.aspx)

In meinem Fall habe ich nun einen Primary Key, der sich über zwei Spalten erstreckt. Beide Spalten will ich nun mit Foreign-Key Beziehung bestücken. Allerdings sind die entsprechenden Primärschlüssel in unterschiedlichen Tabellen.
D.h. ich versuche wie gewohnt über den Designer (siehe Link) die Tabellen-Beziehungen auszuwählen. Ich kann hier aber jeweils nur eine Beziehung eintragen, da ich ja auch nur eine Primärschlüsseltabelle auswählen kann. Folglich erhalte ich die "Beide Seiten der Beziehung müssen über die gleiche Anzahl Spalten verfügen" Meldung, siehe http://technet.microsoft.com/de-de/library/ms164136.aspx.

Die Fehlermeldung verstehe ich, nur wüsste ich jetzt nicht, wie Änderungen sonst über den Designer machen könnte. Hat da jemand eine Idee?

05.07.2009 - 15:03 Uhr

Hi

Also entweder

Mindestens eine Zeile enthält Werte die die Einschränkungen non-null, unique or foreign-key verletzen.

sind die Tabellen fehlerhaft,
oder

An den zwei Tabellen ist meiner Meinung nach nichts besonderes 😦

deine Datenbankstruktur hat sich geändert und du hast den TableAdapter nicht aktualisiert.

05.07.2009 - 12:29 Uhr

Lagere den Aufruf von .NextValue und dem Invoken in eine seperate Methode aus. Als Parameter kannst du ja dann das entsprechende Objekt übergeben. Diese Methode lässt du dann in einer Schleife mit einer Abbruchbedingung durchlaufen.

05.07.2009 - 12:20 Uhr

Bei dem Button wird ein PostbackTrigger verwendet, das habe ich in der aspx gesehen. Allerdings weiß ich nicht genau für was so ein Trigger gut ist? Ein PostBack erfolgt jedenfalls (ich behandle ja den Click-Event des Buttons).

Es ist jedoch möglich einen asynchronen Postbacktrigger zu verwenden. D.h. wenn du auf deinen Button klickst, kannst du den Download-Dialog starten, ohne einen Postback machen zu müssen. Im Prinzip passiert dann

Im Click-Handler wird im Moment ein eigener HTTP-Handler gestartet (ProcessRequest()), der über den HTTP-Header "Content-disposition" den Byte-Array an den Client schickt. nur halt in weniger Zeilen Code.

05.07.2009 - 00:57 Uhr

Hi.

Eventuell bietet es sich hier an, für den Button einen PostBackTrigger zu verwenden.

01.07.2009 - 15:07 Uhr

Was ist dann?

grdListTask.DataSource = oPagedDataSource;
grdListTask.DataBind();

Wenn du Einträge nicht im Repeater haben willst, dann bearbeite doch das Template entsprechend.

01.07.2009 - 13:01 Uhr

Schau dir mal das Markup von deinem GridView an. Vermutlich hast du die "AutoGenerateColumns"-Property auf true. Setze die mal auf false und lösche aus dem Markup die entsprechende Column in der das Datum angezeigt wird.

01.07.2009 - 11:00 Uhr

Damit ist Zeichen 12 in dem RowFilter-String gemeint. Versuch mal anstatt "!=" "<>" zu verwenden. Am besten schaust du dir im der MSDN mal den Eintrag über den RowFilter an. Da wird dann auch die richtige Syntax stehen.

30.06.2009 - 15:56 Uhr

Was genau erhoffst du denn darzustellen? Wenn ich dich richtig verstehe, dann willst du Einträge wo das Datum auf 1900 steht nicht anzeigen. Das was der Senior dir gezeigt hat, zeigt "true" oder "false" an, nach meinem Verständnis.

30.06.2009 - 11:25 Uhr

Ich filtere die daten. lösche alle rows des bestehenden datasets und danach füge ich die gefilterten daten vom dataview ins dataset.

Du kannst doch einfach das DataView als DataSource von deinem Anzeigeobjekt nehmen.

Ich glaube

dv.RowFilter = "ChangeDate = '01.01.1900 00:00:00'";

müsste dann aber

dv.RowFilter = "ChangeDate != '01.01.1900 00:00:00'";

heißen.

30.06.2009 - 10:54 Uhr

da hättest du dann das problem, das du je nach serverauslastung und verfügbarer verbindungsgeschwindigkeit teilweise echt üble laggs hast.

Ich muss dazu sagen, ich weiß nicht was es mit dem WebTacho Projekt auf sich hat. Aber wenn alle User in regelmäßigen Abständen das gleiche Bild sehen würden, dann implementiert man ein Caching in den generischen Handler. Wenn alle unterschiedliche Bilder sehen wollen, dann muss ich dir recht geben.

30.06.2009 - 10:38 Uhr

Hi.
Ich stehe momentan an der Stelle, das ich ein themable UserControl habe, welches ein GridView beinhaltet. Nun will ich jedoch, das ich diesem GridView SkinIDs bereits bestehender GridView Skins zuweisen kann (zur Laufzeit)

Dies scheint allerdings nicht zu funktionieren, das ich nur im OnPreInit-Event die SkinID setzen kann, und ein UserControl dieses nicht hat. Gibt es hierfür einen Workaround (anstatt alle Properties des GridView-Skins über das UserControl durchzureichen)?

Stichworte: Theme, Theming, Skin, Skinning

30.06.2009 - 10:33 Uhr

Ich habe das Tachoselbst als Image und zeichne zurzeit den Zeiger (der auch ein Image ist) direkt auf das Tacho und zeige den ImageStream dann an. Nur für jede Bewegung des Zeiger ist damit ein reload des Seite nötig.

Wie siehts mit einem generischen Handler in einem Updatepanel aus?

29.06.2009 - 18:17 Uhr

Hi. Das Filtern der Einträge solltest du auf jeden Fall nicht im Layout machen.

Wenn du eine DataView als Datenquelle verwendest, dann schau dir mal die RowFilter Property an: http://msdn.microsoft.com/de-de/library/system.data.dataview.rowfilter(VS.80).aspx Die sollte genau das sein, was du willst

29.06.2009 - 14:41 Uhr

GetQueryResults() ist eine Methode.

SqlDataReader tmpInfo = MyDatabase.GetObj().GetQueryResults;

Hier versuchst du auf eine Property mit dem selben Namen zuzugreifen.

.GetQueryResults();

liefert dein gewünschtes Ergebnis

29.06.2009 - 01:20 Uhr

Da sie bis jetzt VNC benuzen und dieses zu leicht zu manipulieren ist,

Da hätte ich die Regel ausgesprochen: Wer an die VNC Einstellungen geht, oder den Server abstellt, der bekommt nen Tadel, ne 6, oder sonstwas.

26.06.2009 - 20:49 Uhr

Wie bekomme ich dieses Bild nun in ein Control (z.B. GridView, DataList, Image, ö.ä.) bzw. wie kann ich es darstellen lassen?

Erstelle eine TemplateColumn in der du ein Image platzierst.
Benutze ein passendes RowDataBound Event in dem du wenn e.Row.DataType == RowDataType.DataRow über e.Row.FindControl("ID") dir das Image Objekt holst.

26.06.2009 - 18:58 Uhr

Benutze die ChangeMode Methode des DetailsViews.

25.06.2009 - 17:43 Uhr

Was ich von DataValueField erwarte ist die ID Nummer! Darum habe ich da "userid" als Feldbezeichner ja drin, damit die Spalte bekannt ist... hhmmm

Ja, das erwarte ich ebenso.

if (ddOwnerList.DataValueField != "" || ddOwnerList.DataValueField != null)  

Um die Abfrage zu vereinfachen, kannst du hier die statische Methode string.IsNullOrEmpty verwenden.

wollte nämlich sowas ähnliches ausführen:

Du musst dann allerdings nicht auf die DataValueField Property zugreifen, sondern auf die SelectedValue Property, denn diese gibt dann den selektierten Wert an.

Die Abfrage nach null oder string.Empty kannst du jedoch weglassen, da du durch das Verwenden der DataValueField Property sicherstellst, das jeder Datensatz den du hinzufügst einen Wert (in diesem Fall einen Wert in der Spalte "userid") besitzt. Solltest du nämlich versuchen einen Datensatz hinzuzufügen, bei dem die Spalte "userid" keinen Wert besitzt, dann knallt eine Exception.

Wo du von SQL Statements sprichst, dann schau dir doch auch mal [Artikelserie] Parameter von SQL Befehlen an. Wenn du die Möglichkeit hast, dann verwende hier jedoch ein typisiertes DataSet (ins Projekt hinzufügen, und aus dem Serverexplorer die passende Tabelle in den Designer ziehen) oder noch besser direkt eine LinqDataSource, die du dir wunderbar über den Designer zusammenklicken kannst, ohne auch nur eine einzige Zeile eines Queries schreiben zu müssen.

25.06.2009 - 16:45 Uhr

Hi

was ich nicht verstehe ist, warum DataValueField den Spaltenbezeichner speichert!!! Um zu wissen, welche Spalte als Anzeigename deines Datensatzes dienen soll. Beim DataValueField ist es eben die Spalte mit dem Wert.

Eigentlich müsste doch der ID Wert gespeichert werden und nicht den feldbezeichner bzw. spaltenüberschrift!!

Wenn du deinen Spalten im DataSet einen anderen Namen als aus der Datenbank gibst, dann musst du den Spaltennamen aus dem DataSet verwenden.

Dein Code lässt sich schöner umschreiben in:


ddOwnerList.DataSource = dsOwnerList.Tables[0];
ddOwnerList.DataTextField = "autor";
ddOwnerList.DataValueField = "userid";
ddOwnerList.DataBind();

23.06.2009 - 12:05 Uhr

Du könntest es ausprobieren.

Vermutlich willst du in dieser CSS Datei für alle Themes gültige Einstellungen (textgröße, abstände, etc) haben. Da bietet es sich an, einen "style" Ordner im Root anzulegen, in dem du .css Files platzierst, die im Master geladen werden.

Deine CSS-Dateien aus dem Theme Ordner werden dann darüber geladen.

21.06.2009 - 23:20 Uhr

Nabend. Ich wollte mal fragen, ob sich jemand von euch schonmal mit
Professional ASP.NET 3.5 AJAX (Wrox Programmer to Programmer)

ISBN-10: 0470392177

ISBN-13: 978-0470392171

http://www.amazon.de/Professional-ASP-NET-AJAX-Wrox-Programmer/dp/0470392177

beschäftigt hat und ob dieses Buch was taugt.

20.06.2009 - 11:56 Uhr

Auf der Arbeit steht mir http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-3-5-In-C-and-VB.productCd-0470187573.html zur Verfügung und ich muss sagen, das ich damit sehr gut klar komme

19.06.2009 - 10:35 Uhr

Moin.

gibt es eine möglichkeit das ganze per .net zu steuern??

Ich denke dir hilft das Event SelectedIndexChanged weiter. Dafür brauchst du dann aber einen Postback (AutoPostBack Property der DDL setzen) oder du versuchst dir da irgendwas mit Ajax zu bauen.

17.06.2009 - 19:39 Uhr

Also wenn ich das Spiel starte und einen Speicherplatz für die simulierten Laufwerke auswähle, dann springt dein Programm wieder zum Auswählen eines Systems und ich bin in einer Endlosschleife.

Wie wärs mit einem kleinen Readme?

17.06.2009 - 18:00 Uhr

Indem du statt dem <a> Element einen LinkButton verwendest. Dieser hat ein OnClick Event, welches serverseitiges ausgeführt wird.

17.06.2009 - 15:07 Uhr

Bei mir geht es schon auch, aber der Value ist halt immer gleich wie der Text - auch wenn ich beim Value die ID des Datensatzes angebe und beim Text den Namen.

Du meinst schon diese Properties

DataTextField="Text" 
DataValueField="Value"

? (Hmm mir fällt grad auf, das das gar nicht das Web-Forum ist. Was für eine DDL verwendest du denn? WF, WPF, ASP?

Poste noch ein wenig mehr Code bitte. Das komplette Markup und die Stelle wo das DataBinding stattfindet. Das hilft uns eventuell weiter dir zu helfen.

17.06.2009 - 14:58 Uhr

HI multitrust,
dann setze die Autopostback Property der DDL auf true.

Was jedoch schöner wäre, wäre es komplett clientseitig zu machen. Dort hilft dir dann JavaScript, vorzugweise direkt ein JavaScript Framework wie z.B: JQuery.

15.06.2009 - 18:16 Uhr

Du könntest eine LinqDataSource verwenden, die als where Parameter den SelectedValue der Gridview nimmt (muss hier dann natürlich der Primärschlüssel sein). In dem Selected Event der LDS dürftest du dann nur den gewünschten Datensatz haben. Das Objekt aus den EventArgs kannst du dann sogar in den entsprechenen Datentyp casten.

vielleicht hilft dir das weiter:

C#-Code:
protected void ProposedGridView_SelectedIndexChanged(object sender, EventArgs e)
{
string person = ProposedGridView.SelectedDataKey["personId"].ToString();
Response.Redirect("PersonViewer.aspx?PersonId=" + person)
}

Was mir da gerade noch zu einfällt: Wenn ich mich recht erinnere, musst du, wenn du die DataKeys verwendest, dem Gridview explizit eine DataSourceID zuweisen und nicht eine DataSource, damit die DataKeys überhaupt gefüllt werden. Den entsprechenden Eintrag in der MSDN habe ich gerade leider nicht gefunden.

15.06.2009 - 17:59 Uhr

Session benützt meist Cookies, d.h. es muss einmal durch den Client gejagt werden, sonst gibt es keine Cookie zur Identifikation des SessionObject. Baue also eine Zwischenseite ein und leite anschließend zum Endziel, damit Cookie gesetzt werden kann.

Alternativ die Session im Mode InProc laufen lassen.

  
        LOBDataSet ds = new LOBDataSet();  
        LOBDataSetTableAdapters.LoginTableAdapter ta = new LOBDataSetTableAdapters.LoginTableAdapter();  
...  
            if (ds.Login.Rows[0]["groupID"].ToString() == "3")  
  

Du verwendest doch schon ein typisiertes DataSet. Benutze es dann doch auch? Du kannst

ds.Login.Rows[0]

in ein Rowobjekt aus deinem DataSet casten und dann typisiert auf die Property groupID zugreifen. Du müsstest den Rowtypen als nested class in LOBDataSet finden.

Eventuell ist noch http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx für dich interessant, falls du es noch nicht eingebaut hast.

14.06.2009 - 19:37 Uhr

Hi.
Da will ich am Rande dir auch nochmal [FAQ] Kommunikation von 2 Forms ans Herz legen 😉

13.06.2009 - 20:56 Uhr

Wie finde ich heraus ob ich dieses Passwort mit Usernamen noch angeben muss?

Du könntest z.B. mit System.Io.File.Exists oder ähnlichem überprüfen, ob du Zugriff auf das Netzlaufwerkhast.

Bzw: kann ich beim verschieben von Dateien gleich mit angeben welchen Benutzernamen und welches Password verwendet werden soll wenn es den gefordert wird?

Es ist codetechnisch möglich, ein Netzlaufwerk mit Benutzername/Passwort zu mounten. Von daher würde ich hier sagen, ja.

12.06.2009 - 15:41 Uhr

Lagere deine Methoden doch in eine Klasse aus?