<div class="keycell">Datei auswählen</div>
<div class="valuecell">
<asp:FileUpload ID="FileUpload1" runat="server"/>
<asp:Button ID="_Button_Upload" runat="server" Text="Hochladen" onclick="_Button_Upload_Click" />
</div>
Ich hab das ganze so gelöst. Inder OnClick Methode speicher ich mir FileName, File und die Größe über ein Objekt in der Session.
Der Button ist ein PostbackTrigger...!
Versuchs mal...!
Gruß
nitro
Danke erstmal
ich habe mir jetzt so geholfen:
StringBuilder sb = new StringBuilder();
sb.AppendLine("<OberKnoten>");
sb.AppendLine("<Unterknoten=\"" + .. + "\"/>");
sb.AppendLine("</OberKnoten>");
// ...
Context.Response.Clear();
Context.Response.ContentType = "text/xml";
Context.Response.AddHeader("Content-Disposition", "attachment; filename=test.xml");
Context.Response.Write(sb.ToString());
Context.Response.End();
Hallo,
erstmal: Falls das hier das falsche Forum ist, bitte verschieben.
Ich würde gerne nach einem Klick auf einen LinkButton eine XML-Datei erstellen und die gleich zum Download anbieten. Am liebsten wäre mir also, die Datei nirgends abzulegen (und auch gleich wieder zu löschen), sondern sie, wie gesagt, gleich anzubieten.
Ist das überhaupt möglich? Oder mache ich nen Gedankenfehler...! Falls das möglich ist, hat jemand das schonmal gemacht?
Gruß
nitro
Hi Giggeler,
Was fehlt dir denn? Die Idee, die Umsetzung an einer Stelle?
Grundlegen bräuchtest du im Hintertgrund deiner Applikation eine Datei, die alle Wörter enthält, die das Programm schon "kennt".
In jeder Zeile ein Wort.
Dann kannst du das Wort ja markieren in deinem TextEditor (?!) und per ContextMenü machst du dir einen Menüpunkt, der eine Funktion aufruft, die das Wort an die Zeile anhängt.
Während jemand schreibt kannst du ja nach jedem mal, wenn die Leertaste, oder andere Tasten wie "-", "/" etc. gedruckt wurde eine Check-Funktion aufrufen, die das Wörterbuch durchgeht und schaut, ob das Wort bekannt oder unbekannt ist, sprich, ob das Wort enthalten ist oder nicht.
Könnte nur bei vielen Wörter performancelastig werden...!
Aber dafür fehlt mir jeder Hintergrund deiner (geplanten) Anwendung.
Gruß
nitro
Hi Giggeler,
also erstmal wäre es gut, wenn du wenigstens ein paar Satzzeichen in deinen Beitrag bauen würdest. So kann das kein Mensch lesen und du erschwerst es nur.
Weiter verstehe ich nicht ganz, was du möchtest.
Das Word-Wörterbuch kann man im Word durch Rechtsklick auf ein nicht bekanntes Wort und dann "Hinzufügen zum Wörterbuch" erweitern.
So fügt man "neue" Wörter hinzu.
Gruß
Nitro
Wie sonst auch:
"Conversion failed when converting datetime from character string."
langsam verzweifle ich echt...sitze schon so lange an dem Fehler...:(
Mal ganz davon abgesehen (ich habe das erste mal mit Datenbanken zu tun) kann ich mir vorstellen: Die Tabelle mit den Key/Value-Paaren wird sehr groß...das kostet doch Zeit & Performance, JEDE ZEILE nach dem Datetime zu konvertieren etc. oder? Eventuell in dem Dienst das ganze machen? (Daten laufen durch einen Dienst, bevor sie angezeigt werden)
Dein Statement so an sich geht.
select
a.[Value]
from
(
select
MyKeyValueTable.[Value]
from
MyKeyValueTable
where
MyKeyValueTable.[Key] = 'ReleaseTime'
) as a
where
CONVERT(datetime, a.[Value], 20) <= CURRENT_TIMESTAMP
Dies bringt mir wieder denselben Fehler...!
Das Subselect selber bringt mir aber nur die TimeStamps...also das geht, das Convert selber geht auch.
Ja, alle Zeilen (!) mit dem Key 'ReleaseTime' sind Datetimekonform...! Danke, ich probiere das mal gerade.
Leider genau der selber Fehler, wie oben angegeben (mit vbprogger's Subselect)
😦(
Okay, langsam habe ich ne vermutung.
Die Tabelle hat eine Key und Value Spalte. in der KeySPalte stehen logischerweise die Keys, in der Valuespalte die Values dazu. Kann es sein, dass der probiert jede Zeile in Datetime zu casten und das bei manchen werten logischwerweise nicht hinhaut? Nicht jedes Valuesfeld ist Datetimekonform.
SELECT
*
FROM
MyKeyValueTable
WHERE
MyKeyValueTable.[Key] = 'ReleaseTime'
AND CONVERT(datetime, MyKeyValueTable.[Value], 9) <= GETDATE()
Das ganze sollte in SQL passieren (Der Vergleich), genauer in einer Stored Procedure. Die Seite habe ich schon gesehen, schaffe es aber nicht, den string in Datetime zu wandeln, bisher wandle ich den Current_Timestamp in nvarchar, aber dann geht der Vergleich nicht richtig.
"Conversion failed when converting datetime from character string."
Gruß
nitro
verwendetes Datenbanksystem: MS SQL SERVER 2005
Hallo,
ich habe eine Tabelle, in der eine Spalte vom Typ nvarchar ist, in der ein Datetime gespeichert wird (als string also) in der Form "Jun 3 2009 12:00AM" (als Beispiel).
Ich würde nun gerne das FEld mit dem jetzigen Zeitpunkt (CURRENT_TIMESTAMP) vergleichen (größer/kleiner).
Nach dem, was ich bisher rausgefunden habe, kann SQL nur 2 Datetimes miteinander vergleichen, meine Frage ist nur: Wie caste (oder converte) ich die beiden so, dass ich sie vergleichen kann?
Gruß
nitro
Hallo nochmal,
ich hab mir jetzt selber geholfen, indem ich vorne einen "Auswählen" hingemacht habe (Commandfield) und dann betreffende Zeilen Visible=true/false setze.
Bin trotzdem für jede bessere Lösung dankbar.
Gruß
nitro
Hallo,
gibt es die Möglichkeit, ein GridView auf/zuklappbar zu machen? Jedoch nicht das komplette (wie hier beschrieben: KLICK), sondern nur spezielle Reihen.
Zur Verdeutlichung:
Reihe 1
----Reihe 2
----Reihe 3
Reihe n
----Reihe n+1
----Reihe n+2
----Reihe n+3
Reihe n+4
----Reihe n+5
etc.
Ähnlich einem Treeview, nur Tabellarisch. Bin ich da mit dem GridView richtig, oder gibt es eine andere, angenehmere Form? Kann man zu einem TreeView Linien hinzufügen?
Gruß
nitro
Dann hättest du trotzdem den Downtime, in der der Dienst "nix" tut...aber zumindest könntest du da weitermachen, wo du aufgehört hast...
Hmm...ich glaube fast, dass du keine Chance hast. Du musst die Dienste kurz anhalten, beim WCF zumindest die *.dll ersetzen und dann starten (Das ist ja keine lange Zeit), trotzdem kommst du mMn nicht um ein stopp-copy-start nicht drumrum.
Eventuell Nachts machen? Wenn vermeidlich wenig Clients da sind und vorher Bescheid sagen (a la "Downtime von 10 Minuten")
gruß
nitro
Unabhängig davon was man persönlich vom Menschen Michael Jackson hält (ich erinnere auch an die Missbrauchsvorwürfe), ist er doch einer der größten Musiker unserer Zeit gewesen, und insofern hat er definitiv meinen Respekt.
Gruß Michbeck1983
Besser kann man es nicht sagen 😉
Mir gehts ähnlich, ich bin kein Riesenfan, finde es aber dennoch tragisch.
In meinen Augen gibt es nicht viele (wenn es einen gibt) der auch nur ansatzweise an Michael Jackson rankommt (und vergleichbar wäre). Die alten CD's (für die älteren: Platten 😉 ) sind einfach nur genial und bis heute nicht grundlos (!) gerne gehört! In Sachen Musik hat er einfach Maßstäbe gesetzt, die seine aktive Zeit geprägt haben.
Ich finds traurig, dass er nicht mehr lebt, freue mich aber auf der anderen Seite, dass ich ihn noch "mitbekommen" habe 😃
Pack die Table in ein Updatepanel, als Trigger dein Button, Contenttemplate ist deine Tabelle...!
Die Funktiondes ButtonOnClick bleibt erhalten. So fügst du eine Zeile hinzu und aktualisierst dann nur die Tabelle, nicht die komplette Seite, die dir ja immer wieder nur eine Zeile anzeigt.
gruß
nitro
dein fehler liegt dann hier:
tblArbeitsplatz ap = glo.tblArbeitsplatz
.Where(a => a.tblArbeitstisch.ArbeitstischID == tischID)
.First();
Was du dahinter machst, weiss ich nicht, aber wie gesagt: da kommt bei dir nichts an (null) 😉
Kann es sein, dass dein "ap" nicht richtig instanziiert ist? Debugg mal und schau, ob das nicht "null" ist, weiter schaue mal hier:
[FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Wo knallts denn...bei der Zuweisung? Beim Convert? (Kein Value hinter den Items)...
Oder bei der Datenbankfunktion?
gruß
Nitro
Ich muss zugeben, dass ich das Phänomen auch schon ein paarmal hatte, auch aus mir unerklärlichen Gründen...! Ich drücke "F10" und er macht ganz normal weiter wie bei "F5"...hab ichs nochmal debugged, gings...!
Du bist also nicht alleine 😉
Gruß
nitro
stichwort string.contains(...)
Wenn in dem einen UserControl NUR (!!!) das Gridview ist, dann ist es ja egal, ob du das gridview nochmal füllst oder das Control einblendest...! Aber wie gesagt, du kannst auch das UserControl einblenden, ist ja egal, was du im ContentTemplate einblendest bzw. in der Button_Click-Methode mit dem UserControl oder dem GridView machst.
lg
nitro
ALso ich finde, du hast das ein wenig kompliziert aufgebaut, zumindest gehts einfacher:
Du machst dir eine ganz normale aspx Seite, darauf eine TextBox.
Dann kannst du die CalenderExtension nehmen (das ist glaube genau das, was du suchst)
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Calendar/Calendar.aspx
Zum auswählen des Datums.
Dann machst du noch einen Button, und darunter ein UpdatePanel, wo als Trigger der Button drin ist, als ContentTemplate dein GridView.
In der OnClick-Methode des Buttons befüllst du dein Gridview deinen Werten und fertig bist du 😃
Somit hättest du dir die UserControls gespart, nur ein Updatepanel und nen schönen Kalender 😉
Naja, ein UpdatePanel hat 2 Grundlegende Elemente:
Trigger und das COntentTemplate.
Die Trigger beinhalten das Control, auf das das UpdatePanel reagieren soll. In deinem Fall der Button. ContentTemplate wäre dann in deinem Fall das GridView, was aktualisiert wird.
Du hast ja den Button, der bei "OnClick" irgendwas macht.
OnClick="Button1_DoSomething"
in der DoSomething aktualisierst du dann das GridView und gibst es auch als COntentTemplate im Updatepanel an, ca so:
<asp:UpdatePanel ID="MyUpdatePanel" runat="server" UpdateMode="Conditional" >
<Triggers>
<asp:AsyncPostBackTrigger ControlID="MyButton" EventName="Click" />
</Triggers>
<ContentTemplate>
<!-- Hier dein UserControl oder halt das GridView, was aktualisiert werden soll -->
</ContentTemplate>
</asp:UpdatePanel>
Somit reagiert das UpdatePanel auf die im Trigger eingetragenen Elemente, bzw. auf das Event der eingetragenen Elemente und aktualisiert seinen Inhalt (ContentTemplate)
gruß
nitro
Hast du als Trigger der UpdatePanels bei beiden den Button eingegeben???
Gabs nicht bei Command and Conquer mal so ne Sirene??? Eventuell da mal schauen, vielleicht liegt die Datei ja als *.wav oder sowas vor?!
Gruß
nitro
Naja, du hast doch die Funktion schon gepostet...dann ruf sie doch einfach auf, du bekommst laut der Funktion ne Liste zurück mit allen emailadressen in einem Text...!
Rein vom ersten Blick und deiner Beschreibung genau das, was du suchst...!
lg
nitro
Füge oben in der MasterPage mal ein:
<%@ Register Src="MyUserControl.ascx" TagName="MyUserControl" TagPrefix="uc1" %>
das sprichst du dann an mit
<uc1:MyUserControl id="MyUserControl1" runat="server"></uc1:MyUserControl >
sollte gehen (umindest sieht es bei mir so aus 😉)
Hallo Leute,
mal ganz dumm gefragt:
Wie installiere ich einen Windows-Service unter WIndows 7? oder Vista?
Bei XP gabs immer "InstallUtil" und ich war glücklich...wie schaut das jetzt aus? Ich suche andauernd, werde aber nicht schlau...!
Hat da schon wer Erfahrung?
Gruß
nitro
GIbts nicht so eine "contains"-sache?
a la
if (filename.contains("xyz"))
{
...
}
Wie sieht das denn im Code aus...bindest du die a la:
MyDropDown.DataSource = MyDataTable;
MyDropDown.DataTextField = "Spaltedieangezeigtwerdensoll";
MyDropDown.DataBind();
?
Gruß
Nitro
@Nitro2k7: aspx wird nicht gemeint sein da es eine Frage im GUI: Windows-Form Forum ist.
UPS...mein Fehler...Tut mir leid^^
Naja, also ich würds einfach mal so probieren:
deine Tabelle als Datasource:
GridView1.DataSource = MyTable.DefaultView;
GridView1.DataBind();
dann im aspx Code:
<asp:GridView ID="GridView1"...>
...
<Columns>
<asp:BoundField DataField="DataBaseTableColumnName" HeaderText="HierstehtmeinSpaltenHeader" />
</Columns>
</asp:GridView>
Ansonsten mach dir doch ein DataTable, füge in das ROws ein, in die Rows SPalten und dann kannst du sie füllen, wie du das schon mit dt[0] und so weiter machst, danach auch wieder
MyGridView = MyDataTable.DefaultView;
Siehe DataTable-Klasse
Verstehe ich das richtig, dass es lediglich um eine Anzeige von Daten einer Tabelle in einem DGV geht?
wieso machst du nicht einfach ganz normal mit datasource, databind und im aspx code hast du die Boundfields, die du anzeigen möchtest...!
Versteh ich was falsch?
Gruß
nitro
sowas wie "selectedIndexChanged" ?!
Ich hab deinen code mal getestet, mit einer Spalte/Zeile, integer und eine Zahl zugewiesen und das geht. Es muss irgendwo an deiner foreach-schleife liegen...! eventuell die Hyperlinks?
Hi,
also erstmal ist es vielleicht nicht so gut, wenn du uns ständig den kompletten Code postest...^^. Du musst immer bedenken, dass wir nicht in dem Projekt drinstecken, schon gar nicht so tief wie du, somit sollten deine Fragen möglichst eindeutig sein, somit auch der Code-Teil an dem es hängt.
Du kannst dir doch ne Klasse für deine Spielfiguren machen, die Standardkoordinaten für deine Spielfiguren enthält, und die rufst du dann einfach auf und lässt so bei jedem(!) Spielanfang deine Figuren"neu" setzen.
Wenn die frei wählbar sein sollen, kannst du ja vorher eine Abfrage machen, wo die Figuren hinsollen, dann kannst du die dir speichern und bei einem "Neuen Spiel" wieder auslesen bzw. setzen.
Im grunde ist das "schnell" gemacht...wenn du nur
Kunde von bis was( gemacht nehme ich mal an)
haben willst, hast du eine deiner datenbanktabellen schon fast definiert 😉
ein design aufsetzen (oder ein fertiges nehmen) und dann ist das ein kleines aber nützliche projekt 😃
gruß
Nitro
Okay, ich probier das mal mit dem runat-Attribut. Ist auch nur ein Control unter vielen, was aber halt in HTML und nicht ins asp ist.
Danke und danke auch an kleines_eichhoernchen 😃
Gruß
Nitro
Hallo
ist es möglich, auf ein normales HTML-Element (bzw. dessen value) zuzugreifen per Codebehind mit C#?
Ich habe das hier
schon gefunden, aber wollte mal fragen, ob das nicht einfacher geht und/oder ob das die leichteste Lösung ist.
Gruß
Nitro
Ein bisschen mehr Info wäre gut...
Legst du jedesmal eine neue Row an, fügst die dem DT hinzu?
Was für eine Fehlermeldung bekommst du? Debuggen?
Gruß
Nitro
Das frage ich ab mit
if (GridView1.Rows.Count > 0 ...)
Somit würde er erst bei der zweiten Zeile in den Zweig springen und kann somit auf die Zeile vor ihm zugreifen. So war das gedacht^^....!
Ich glaube, ich werds damit lösen, wie du sagtest, mir das irgendwo zu merken.
Danke dir trotzdem 😃
EDIT:
Der ROws count fragt nach der anzahl, nicht nach dem index...wenn DAS der fehler ist/war...KOPF--> TISCH!!!
EDIT2:
Puuuuh, das DataItem ist immernoch null...^^
Okay,
also
GridViewRow testrow = GridView1.Rows[e.Row.RowIndex - 1];
Die Row bekommt er noch. Darin das DataItem
object dataItem = row.DataItem;
bzw.
object data = DataBinder.Eval(dataItem, "MeinSpaltenHeader");
ist dann schon alles null.
DataItem = null,DAtaItemIndex = 0, RowIndex = 0 (gut, ist auch die erste Zeile des GridView 😉 )
gruß
nitro
Das hätte ich natürlich gleich dazu schreiben können...
object asdf = DataBinder.Eval(GridView1.Rows[e.Row.RowIndex - 1].DataItem, "MeinSpaltenHeader");
Das object ist somit immer null...
gruß
nitro
Hallo Peter,
ja, das hatte ich auch, aber da bekomm ich eine NullReferenceException, Objektverweis nicht auf Objektinstanz etc. ...
Nur die Frage, warum? Kennt er vielleicht im Databinder nur (ausschliesslich) die aktuelle Zeile?
Gruß
Nitro
Okay, für die aktuelle Reihe bekomme ich das hin
DataBinder.Eval(e.Row.DataItem, "MeinSpaltenHeader")
Sollte ich das auch bei der Reihe drüber machen? Wenn ja, wie greife ich da per DataBinder drauf zu, da in "e.row" ja nur meine aktuelle Reihe steht.
Gruß
Nitro
Habs jetzt so gelöst:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (GridView1.Rows.Count > 0 && e.Row.RowType == DataControlRowType.DataRow)
{
// Vorherige Zeile...
GridViewRow row = GridView1.Rows[e.Row.RowIndex - 1];
// Falls die ID ungleich der ID der Zeile darüber ist...
if (row.Cells[0].Text != e.Row.Cells[0].Text)
{
// ... bekenne Farbe...^^
if (row.BackColor == Color.Green)
{
e.Row.BackColor = Color.White;
}
else
{
e.Row.BackColor = Color.Green;
}
}
// Falls die ID gleich ist, nimm die Farbe der Zeile darüber an
else
{
e.Row.BackColor = row.BackColor;
}
}
}
// Nach dem kompletten Databind, blende die ID Spalte aus (Für User unrelevant, da GUID'S)
protected void GridView1_DataBound(object sender, EventArgs e)
{
GridView1.Columns[0].Visible = false;
}
funktioniert...!Danke! 😃
PS: Das grün ist nur, damit ichs besser sehe^^...das kann man ja variieren...