Ich möchte einen Chat erstellen und hierfür auf AJAX zurückgreifen. Hierzu verwende ich ein Label, zum anzeigen des Textes, und eine Textbox, in der der Text über Return abgesendet werden soll. Zum updaten des ganzen wollte ich zwei UpdatePanel benutzen.
UpdatePanel_Chat: des Label soll durch einen Timer nach einer bestimmten Zeit, und durch ein OnTextChanged-Event der Textbox aktualisiert werden.
UpdatePanel_Chat_Textfield: soll nach dem abschicken eines Eintrag, das Textfeld reseten.
Nun habe ich das Problem das das Panel des textfeld auch entsprechend des Timers nach einer bestimmten Zeit upgedatet wird und ich somit den Cursor verliere.
Kann mir einer erklären warum sich der Timer auf beide Panel auswirkt und wie ich das beheben kann?
Vielen Dank im vorraus
Knollo
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel_Chat" runat="server">
<ContentTemplate>
<asp:Label CssClass="label" ID="Label_Chat" runat="server" Text="Label"></asp:Label>
<asp:Timer ID="Timer_Chat" runat="server" Interval="6000"></asp:Timer>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer_Chat" />
<asp:AsyncPostBackTrigger ControlID="Button_Chat" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel_Chat_Textfield" runat="server">
<ContentTemplate>
<asp:TextBox CssClass="textbox" ID="TextBox_Chat" OnTextChanged="Button_Chat_Click" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBox_Chat" />
</Triggers>
</asp:UpdatePanel>
Original von VizOne
Hallo Knollo,Das Problem ist, dass die Page-Objekte bei jedem Seitenaufruf neu erstellt werden, in deinem Fall damit eben auch das Objekt in der Membervariable.
Wenn du Objekte über mehrere Seitenaufrufe hinweg erhalten willst, kannst du diese im Sessionstate hinterlegen:
Session["EinBeliebigerName"]= Objekt; // respektive Objekt = (Objekt)Session["EinBeliebigerName"];
Am besten, du suchst mal nach Sessionstate o.ä. Die Verantwortliche Klasse ist HttpSessionState, das Objekt ist zu erreichen mittels Page.Session.
Grüße,
Andre
Danke Andre , eigentlich hätte ich da selber drauf kommen müssen
Hallo ich habe ein Problem mit meinen Klassen.
Ich habe mir mehrere Klassen geschrieben von denen ich in ASP gerne ein Objekt erstellen möchte. das ich in mehreren Methoden verwenden kann.
Wenn ich das objekt aber in zwei Methoden aufrufe, so ruft c# immer ein neues objekt auf, so das ich die Eigenschaften die ich vorher zugewiesen haben nicht verwenden kann.
Beispiel:
public partial class Test : System.Web.UI.Page
{
protected TestKlasse Objekt = new Testklasse();
puplic void Methode1()
{
Objekt.Nummer = 1;
}
puplic void Methode2()
{
if (Objekt.Nummer = 1) "es funktioniert";
}
}
was mach ich falsch. Wer kann helfen
Danke schonmal im vorraus
Knollo
Ich glaube der neo liest die Daten seperat durch eine Funktion aus der Datenbank aus und schreibt sie dann in die Liste.
Habe zur Zeit nach dem Hinweiss mit JavaScript folgende Variante gefunden:
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string script = string.Format("if(window.event.keyCode == 13) {0}", this.GetPostBackEventReference(bt_search));
tb_search.Attributes.Add("onkeydown", script);
}
void bt_click(object sender, EventArgs e)
{
lb_msg.Text = string.Format("Sie haben eingegeben: '{0}'", tb_search.Text);
tb_search.Text = "";
}
</script>
<form runat="server">
<ASP:TextBox id="tb_search" runat="server"/>
<ASP:LinkButton id="bt_search" runat="server" Text="Suchen..." OnClick="bt_click"/>
<ASP:Label id="lb_msg" runat="server"/>
</form>
das Problem ist aber, das zwar in diesem Beispiel nach einem KeyEvent der TextboxInhalt gelöscht wird aber nicht in meiner Quelltext.
Wer kann helfen?
Hallo ich möchte den Inhalt einer Textbox durch ein KeyEvent abschicken, anstatt durch das aktivieren eines Buttons. Hab leider nichts im Web gefunden wie man soetwas machen kann.
Meine Frage daher:
Ist es möglich KeyEvents in ASP unter C# zu verwenden und wenn ja wie sieht eine Umsetzung aus?
Vielen Dank schonmal
Stefan
Hey,
ich möchte gern den Quelltext meiner Internetseite auf Schwachstellen überprüfen, dazu sollen alle Funktionen überprüft werden, wieviel Zeit sie zur ausfürhung brauchen. Normalerweise würde ich ja einen Profiler nehmen de den C# Quelltext durchgeht, aber ich finde keinen für VWD 2005. Wer kann mir weiterhelfen?
Hey hier wahrscheinlich eine sehr einfache Frage, die es bestimmt nicht wert ist zu schreiben.
Ich möchte eine Textdatei anlegen und in dieser auch Tabs und andere Formatierungsmöglichkeiten abspeichern. Zur Zeit verwende ich folgenden Quelltext:
protected void Button1_Click(object sender, EventArgs e)
{
StreamWriter pTextWriter = File.CreateText(FilePath);
string pTextString = "Das ist eine Testdatei";
pTextWriter.WriteLine(pTextString);
pTextWriter.Close();
}
Wie kann ich hierbei festlegen das er Zeilen Umbrüche oder Tabs setzen soll?
Ich danke wie immer schon mal im vorraus für eine Antwort
Viele Grüße
Knollo
Original von sbertl000
Setz doch nen Haltepunkt und schau, welchen Wert pTextbox hat.sbertl
Hab ich gemacht und es kommt wirklich immer "null" herraus
Original von Kai.
pTextbox ist immer Null?
Sorry aber ich verstehe die Frage nicht
Hallo ich erstelle eine dynamische Anzahl von Textfeldern. Nachdem der Benutzer diese Felder ausgefüllt hat sollen diese nach dem bestättigen mit dem OkButton ausgelesen werden. Aber ich komme nicht an den Text wer kann helfen.
//Erstellen der Textboxen
for (int Index = 1; Index <=TextboxAnz; Index++)
{
TextBox pTextbox = new TextBox();
pTextbox.ID = "TextBox" + Index;
pTextbox.Text = "Bitte Text eingeben";
Placeholder_Textbox.Add(pTextbox);
}
//Abfrage nach ButtonEvent
string[] pResultString = new string[TextboxAnz];
for (int Index = 1; Index <= TextboxAnz; Index++)
{
string pTextBoxID = "TextBox" + Index;
TextBox pTextbox = (TextBox)Placeholder_Textbox..FindControl(pTextBoxID);
if (pTextbox != null)
{
pResultString[Index-1] = pTextbox.Text;
}
}
Danke hab ich gemacht, hääte ich eigentlich auch selber drauf kommen können 😉
Vielen Dank nochmal
kann man dabei auch mit den CommandName arbeiten
Super, danke nur noch eine Frage, wenn ich über diesen Weg Buttons erstelle, wie kann ich diesen Events zuweisen? Danke nochmals
Original von Kai.
Du kannst mit Hilfe des Placeholders dynamisch Controls hinzufügen.<asp:Placeholder id="plhNewControls" runat="Server"/>
for(int i = 0; i < 10; i++) { TextBox txt = new TextBox(); txt.Text = "Bla"; txt.ID = "txt" + i; plhNewControls.Controls.Add(txt); }
Danke der Quellcode funktioniert aber wie kann ich nun auf die textboxen zugreifen und den Inhalt verändern?
Hallo,
Ich versuche in .Net Button und Textfelder dynamisch über eine for- Schleife im Script zu erstellen. Dies gelingt mir auch indem ich HTML-Elemente in einem Label ausgebe. Aber ich schaffe es dann nicht über das Script auf diese Elemente zu zu greifen. Kann mir jemand einen Tip geben was ich falsch mache. Oder wie man dieses Prinzip in .Net über C# umsetzen kann.
Vielen Dank schon mal
Knollo
Danke dir dann muss ich mir gleich mal nee andere Lösung einfallen lassen
Original von FZelle
Schreiben kannst Du garnicht direkt.
Wäre ja noch schöner, wen eine ASP.NET Anwendung ( Internetseite ) einfach
so auf meiner Platte rummüllen könnte.Die Resultate must Du als download anbieten, die der benutzer dann speichern muss.
Funktioniert auch nicht wenn der User über uoloadFile eine Datei auswählen würde in die die Daten gespeichert werden sollen?
Danke für die ganzen Antworten, aber kann mir jemand einen BeispielCode aufzeigen, wie ich es besser machen kann.
Hallo,
Ich möchte eine Textdatei vom Client über eine ASP-Seite öffnen und den String auslesen.
Habe zur Zeit diese Möglichkeit gefunden kann mir aber nicht vorstellen, das dies die einzige möglichkeit ist, benötige nämlich auch eine Lösung für das speichern einer Textdatei beim Client
Wer kann weiterhelfen. Viele Grüße Knollo
const int BUFFER_SIZE = 255;
int nBytesRead = 0;
Byte[] Buffer = new Byte[BUFFER_SIZE];
StringBuilder strUploadedContent = new StringBuilder("");
Stream theStream = FileUpload1.PostedFile.InputStream;
nBytesRead = theStream.Read(Buffer, 0, BUFFER_SIZE);
while (0 != nBytesRead)
{
strUploadedContent.Append(Encoding.ASCII.GetString(Buffer, 0, nBytesRead));
nBytesRead = theStream.Read(Buffer, 0, BUFFER_SIZE);
}
string pTextString = strUploadedContent.ToString();
char[] pSeparators = new char[] {';'};
string[] pTextArray = pTextString.Split(pSeparators);
for (int Index = 0; Index < pTextArray.Length; Index++)
{
LabelOutput.Text += "<br/>";
LabelOutput.Text += pTextArray[Index];
}