【发布时间】:2016-07-27 18:43:06
【问题描述】:
我在尝试在同一页面上查找文本框控件时遇到了问题。当我调试它时,它一直给我一个空值。
这是我的代码:
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 + "]=@Time" + input + " WHERE [JobShtId]=@JobShtId", sqlConnection))
{
command.Parameters.AddWithValue("@JobShtId", jobSheetId);
command.Parameters.AddWithValue("@Time" + input + "", myTextbox.Text);
command.ExecuteNonQuery();
}
sqlConnection.Close();
}
问题已解决:我没有指定文本框控件在容器中(例如 ContentPlaceHolder1)。
以下是更正后的代码:
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 + "]=@Time" + input + " WHERE [JobShtId]=@JobShtId", sqlConnection))
{
command.Parameters.AddWithValue("@JobShtId", jobSheetId);
command.Parameters.AddWithValue("@Time" + input + "", myTextbox.Text);
command.ExecuteNonQuery();
}
sqlConnection.Close();
}
【问题讨论】:
-
而不是 find control.. 请尝试 Page.FindControl 和 this.Page.FindControl 并告诉我是否对您有帮助
-
文本框在哪里定义?是否在其他一些容器控件中,例如 gridview?
-
我这样做了,但是没有用。我发现它为什么一直返回null,原因是我没有指定控件在容器中。例如,ContentPlaceHolder1
-
请尝试它应该可以工作.... var container = Master.FindControl("ContentPlaceHolder1"); var control = container.FindControl("txtNaam1");
-
谢谢@maulik sakare,我几分钟前才意识到!
标签: c# asp.net .net findcontrol