Ich stieß auf ein Problem, ein Textbox-Steuerelement auf der gleichen Seite zu finden. Es gibt mir eine Null, wenn ich es debugge.Kann das Textfeld mit FindControl C nicht finden #
Hier ist mein Code:
public void UpdateTimeLog(string input)
{
string timeNumber = "txtTime" + input;
TextBox myTextbox = (TextBox)FindControl(timeNumber);
sqlConnection.Open();
using (var command = new SqlCommand("UPDATE [JobSheet] SET [Time" + input + "][email protected]" + input + " WHERE [JobShtId][email protected]", sqlConnection))
{
command.Parameters.AddWithValue("@JobShtId", jobSheetId);
command.Parameters.AddWithValue("@Time" + input + "", myTextbox.Text);
command.ExecuteNonQuery();
}
sqlConnection.Close();
}
Problem gelöst: ich nicht angeben, dass die Textbox in einem Container eingebaut war (z ContentPlaceHolder1.). Hier
ist der korrigierte Code:
public void UpdateTimeLog(string input)
{
var container = Master.FindControl("ContentPlaceHolder1");
string timeNumber = "txtTime" + input;
TextBox myTextbox = (TextBox)container.FindControl(timeNumber);
sqlConnection.Open();
using (var command = new SqlCommand("UPDATE [JobSheet] SET [Time" + input + "][email protected]" + input + " WHERE [JobShtId][email protected]", sqlConnection))
{
command.Parameters.AddWithValue("@JobShtId", jobSheetId);
command.Parameters.AddWithValue("@Time" + input + "", myTextbox.Text);
command.ExecuteNonQuery();
}
sqlConnection.Close();
}
Statt Kontrolle finden. Bitte versuchen Sie Page.FindControl & this.Page.FindControl und lassen Sie mich wissen, ob es Ihnen hilft –
Wo ist das Textfeld definiert? ist es in einer anderen Containersteuerung wie Gridview? – Adil
Ich tat das, aber es hat nicht funktioniert. Ich fand heraus, warum es immer Null zurückgab, und der Grund war, dass ich nicht angegeben hatte, dass das Steuerelement in einem Container war. Zum Beispiel, die ContentPlaceHolder1 –