在我的代码,我需要做一些textboxes[]
,将获得从数据库但其工作的50%文本框阵列框TextChanged不火正确
public static Table tableinfo = new Table();
public static TableRow rowinfo = new TableRow();
public static TextBox[] information = new TextBox[1000];
public static Label[] information1 = new Label[1000];
public static Label[] information2 = new Label[1000];
public static Label[] information3 = new Label[1000];
public static Label[] information4 = new Label[1000];
public static string[] gettext = new string[1000];
public static int textboxes;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
textboxes = 1;
for (int i = 0; i < 1000; i++)
{
Array.Clear(gettext, 0, gettext.Length);
Array.Clear(information, 0, information.Length);
}
}
else
{
}
tableinfo.Controls.Clear();
tableinfo.BorderWidth = 1;
addtextboxes();
placeholder1.Controls.Add(tableinfo);
makeandfilltextboxes();
}
public static void makeandfilltextboxes()
{
for (int i = 0; i < textboxes; i++)
{
gettext[i] = "";
}
for (int i = 0; i < textboxes; i++)
{
gettext[i] = information[i].Text;
//go to database and fetch information
information1[i].text = databaseinformation1[i];
information2[i].text = databaseinformation2[i];
information3[i].text = databaseinformation3[i];
information4[i].text = databaseinformation4[i];
}
}
static void TestForm_TextChanged(object sender, EventArgs e)
{
makeandfilltextboxes();
tableinfo.Controls.Clear();
tableinfo.BorderWidth = 1;
textboxes++;
addtextboxes();
}
public static void addtextboxes()
{
for (int i = 0; i < textboxes; i++)
{
rowinfo = new TableRow();
TableCell cellinfo = new TableCell();
information[i] = new TextBox();
information[i].AutoPostBack = true;
information[i].CausesValidation = false;
information[i].EnableViewState = true;
information[i].Text = gettext[i];
information[i].TextChanged += new EventHandler(TestForm_TextChanged);
rowinfo.Cells.Add(cellinfo);
cellinfo.Controls.Add(information[i]);
tableinfo.Controls.Add(rowinfo);
TableCell cellinfo1 = new TableCell();
information1[i] = new Label();
information1[i].EnableViewState = true;
information1[i].Text = databaseinformation1[i];
rowinfo.Cells.Add(cellinfo1);
cellinfo.Controls.Add(information1[i]);
tableinfo.Controls.Add(rowinfo);
TableCell cellinfo2 = new TableCell();
information2[i] = new Label();
information2[i].EnableViewState = true;
information2[i].Text = databaseinformation2[i];
rowinfo.Cells.Add(cellinfo2);
cellinfo.Controls.Add(information2[i]);
tableinfo.Controls.Add(rowinfo);
TableCell cellinfo3 = new TableCell();
information3[i] = new Label();
information3[i].EnableViewState = true;
information3[i].Text = datbaseinformation3[i];
rowinfo.Cells.Add(cellinfo3);
cellinfo.Controls.Add(information3[i]);
tableinfo.Controls.Add(rowinfo);
TableCell cellinfo4 = new TableCell();
information4[i] = new Label();
information4[i].EnableViewState = true;
information4[i].Text = databaseinformation4[i];
rowinfo.Cells.Add(cellinfo4);
cellinfo.Controls.Add(information4[i]);
tableinfo.Controls.Add(rowinfo);
}
}
因此,大家可以看到,我的一些信息填充数组中的值填入信息[i] 上的值在那里我正在查找数据库中,如果我能找到的东西。 这是完美的工作。 唯一的问题是information[i].TextChanged += new EventHandler(TestForm_TextChanged);
以奇怪的方式被调用。
你进入一个文本框的第一时间是火灾 的第二次它不发射 它激发 它不发射 等
如果我能发射第四次第三次TestForm_TextChanged
每次问题都会得到解决。
我也有一些复选框谁正在checkedchangeded事件处理程序checkedchanged谁显示手上的信息是否被检查是否造成一些问题 即时通讯工作在updatepanel和有一个scriptmanager在我的aspx desinger。 是什么导致这个问题?
使用谷歌浏览器,我可以使用ENTER键,它会一直工作。 但是,输入在Internet Explorer中不起作用。
注意:我发送的代码只是重复而非实际代码。 这需要我的实习政策。
如果您需要更多关于代码的信息,请随时提问,尽量尽可能详细。
如果你的意思是,我需要清除文本框的公共静态,这已经与我并列。比我遇到了不想再一起工作的其他网页的问题。因为我对所有数据库qeury使用不同的cs。也是静态方法的非静态变量的错误。 有没有像LostFocus的方法? – 2013-02-26 20:01:37
我在之前尝试过的信息填充文本Empty是存在的,并且在textchanged没有被触发后(第二次改变文本框)标签被更改为不可用如果数据库中没有结果,他会说什么。 但随着调试它显示我它并没有触发textchanged – 2013-02-26 20:07:31