Es gibt einen ersten Erfolg:
Mit der Funktion
<SCRIPT>
function submitOnEnter(e) {
var submitBtn = document.getElementById(e);
// debug
//alert(e);
if(event.which || event.keyCode)
{
if ((event.which == 13) || (event.keyCode == 13))
{
submitBtn.click();
return false;
}
} else
{
return true
};
}
</script>
TextBox1.Attributes.Add("onkeydown", "submitOnEnter('ctl00_Button1')");
wird meine Button_Click Funktion aufgerufen.
Es gibt aber dennoch ein Problem,
die Funktion wird zwar aufgerufen, nur leider wird mein Response.Redirect nicht ausgeführt. Klicke ich auf den Button geht alles, beim Enter geht alles bis auf die Weiterleitung. Ich habe die Button_Click Funktion so gut es geht untersucht, konnte aber keinen Unterschied feststellen.
Bei diesem Phänomen bin ich wirklich überfragt und hoffe ihr habt da mehr Ideen?
sender und e scheinen auch identisch zu sein. Bis auf die x,y variablen vllt.
x und y ist beim enterklick 0, bei button was mit 36 25 oder so.
Hier ist zur Sicherheit mal die Button_click():
protected void Button1_Click(object sender, EventArgs e)
{
Session.Add("searchtext", TextBox1.Text);
string query;
//alle wörter die einen fehler in der sql abfrage erzeugen würden, werden hier aussortiert
query = removeNoise(TextBox1.Text);
//bilden eines leeren Tables, in den die suchergebnisse eingefügt werden können.
DataTable endresult = Create_Resulttable();
if (query.Length < 3)
{
TextBox1.Text = "Minimum 3 Zeichen";
}
else
{
SaveSearchStatistic();
// Starten der Abfrage
//Zuerst wird auf || und | geprüft
endresult = OR_Verknüpfung(query);
//Kontrolle ob der User die Rechte besitzt, die einzelnen Ergebnisse zu sehen
// Rolle < 2 = mind. Auditor
// User und Editor werden überprüft
if ((int) Session["role"] < 2)
{
DataTable tmp = endresult.Clone();
//tmp table enthält nur die erlaubten probleme
foreach (DataRow row in endresult.Rows)
{
string frei = checkBerechtigungenProblem(row["Problem_ID"].ToString());
if (frei == "frei")
{
//arbeiten mit tmp table und import row, da löschen zu fehler führte.
tmp.ImportRow(row);
}
}
endresult = tmp;
}
dataset.Tables.Add(endresult);
if (dataset.Tables["T_Problem_Details"].Rows.Count == 0)
{
string searchid = "2";
Response.Redirect("result.aspx?search=" + searchid);
}
else
{
Session.Add("results", endresult);
string searchid = "3";
Response.Redirect("result.aspx?search=" + searchid);
}
}
}
Hat es vllt doch noch irgend etwas mit der javascript funktion zutun?
Ich habe einmal versucht mein leeres <script> tag mit language oder typ zu bezeichnen, danach wurde die button_click funktion nicht mehr erreicht?!
Das verhalten ist sowieso etwas komisch, wenn ich erst einmal über button suche, und danach in die textbox gehe und enter klicke passiert nichts.
Nur beim ersten suchen über den enter button geht es sicher.
Wenn ich danach wieder in die textbox klicke und einfach nur enter drücke (wert ist noch im textfeld) passiert nichts. wenn ich den text ändere und dann enter klicke passiert nichts beim ersten mal. Wenn ich dann wieder in die box klicke und nur enter klicke geht es wieder, manchmal aber auch erst beim 3. mal. Wird der Text nicht geändert geht es gar nicht beim 2, 3, 4... Enter klick.
???
So, habe versucht meinen Test soweit es geht zu beschreiben.
Ich hoffe es waren genug wichtige Informationen dabei.