【发布时间】:2019-04-12 09:54:47
【问题描述】:
希望您能提供帮助。
我有一个 aspx web 应用程序,它有一个从 SQlite 填充的列表,用于存储手机号码
我有一个按钮,可以让我启用/禁用一个文本框 - 一切正常。
现在,当我过滤视图并单击“编辑”时,页面会重新加载。
按钮/文本框是从 SQLite 动态创建的。
TextBox NES_editText = new TextBox();
NES_editText.CssClass = "editText";
NES_editText.Enabled = false;
NES_editText.Text = SQLReader["simName"].ToString();
NES_editText.ID = 300 + SQLReader["simNESID"].ToString();
Sim_Rows.Controls.Add(NES_editText);
Sim_Rows.Controls.Add(new LiteralControl("</div>")); // COL 2
Sim_Rows.Controls.Add(new LiteralControl("<div class=\"col col-3\" data-label=\"Edit Name\">"));
Button editButton = new Button();
editButton.CssClass = "editButton";
editButton.ID = SQLReader["simNESID"].ToString();
editButton.Click += new EventHandler(EditButton_Click);
Sim_Rows.Controls.Add(editButton);
Sim_Rows.Controls.Add(new LiteralControl("</div>")); // COL 3
这是我的编辑按钮代码
private void EditButton_Click(object sender, EventArgs e)
{
Button NES_Edit = sender as Button;
//TextBox NES_Text = new TextBox();
String TxtID;
//Response.Write(NES_Edit.ID);
foreach (Control obj in Sim_Rows.Controls)
{
if (obj is TextBox)
{
TxtID = obj.ID.Substring(3);
if (NES_Edit.ID == TxtID)
{
if (((TextBox)obj).Enabled == false)
{
((TextBox)obj).Enabled = true;
((TextBox)obj).Style.Add("border-bottom", "1px solid #000");
((TextBox)obj).Style.Add("width", "270px");
NES_Edit.CssClass = "button_enabled";
//Response.Write(NES_Edit.ID);
break;
}
else
{
((TextBox)obj).Enabled = false;
((TextBox)obj).Style.Remove("border-bottom");
NES_Edit.CssClass = "editButton";
SQL = "UPDATE Sims SET simName = @simName WHERE simNESID =" + NES_Edit.ID;
using (SQLiteConnection SQLCon = new SQLiteConnection(ConnectionString))
{
SQLiteCommand SQLCmd = new SQLiteCommand(SQL, SQLCon);
SQLCmd.Parameters.AddWithValue("@simName", ((TextBox)obj).Text );
try
{
SQLCon.Open();
SQLCmd.ExecuteNonQuery();
}
catch (SQLiteException Ex)
{
Response.Write(Ex.Message);
}
SQLCon.Close();
// SEND EMAIL
}
break;
}
}
}
}
}
当我过滤视图时,我有两个结果并单击编辑,页面重新加载。
有什么办法可以阻止吗?
【问题讨论】:
-
我想这可能就是你要找的东西:stackoverflow.com/questions/21325211/…
-
您是否尝试过
UpdatePanel或带有处理程序文件的传统Ajax?您要对抗的是 Web 表单的传统生命周期,您应该进行研究,因为对抗架构会在未来引发问题。 -
@Brad,我看过那篇文章 - 我已经尝试了其中一些,但它禁用了“点击”事件。
-
@Greg,谢谢 - 我会在生命周期中做一些事情。
-
@Azmodan 为您试了一下,希望对您有所帮助。