编辑文本框不起作用(它没有插入和提交新数据)
Edit Textbox not working (It is not taking the new data inserted and submitted)
我在一个网站上工作,其中有一些文本框的 ReadOnly 值为 false,即它是可编辑的。在页面加载时,用户的原始名称(值)是从数据库加载的,如果其中有一些错误,he/she 可以 change/update。但是当我更改值并单击提交时,它仍然采用以前存储的值而不是给定的新数据。
文本框的 .aspx 代码 片段:
<div class="form-group" style="width: 80%">
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text headDetails">Trainee Name</div>
</div>
<asp:TextBox ID="TextBox2" runat="server" CssClass="form-control"></asp:TextBox>
</div>
</div>
.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
string UserId = Session["new2"].ToString();
Response.Write(UserId);
try
{
mycon = new MySqlConnection("server=localhost;database=trainee;user id=abcd;password=abcde@gea;");
MyCm = new MySqlCommand("select * from trainee_master where trainee_master.Reference_Number='" + UserId.ToString() + "'", mycon);
myad = new MySqlDataAdapter(MyCm);
DataTable dt = new DataTable();
myad.Fill(dt);
if (dt.Rows.Count > 0)
{
TextBox1.Text = dt.Rows[0][0].ToString();
TextBox2.Text = dt.Rows[0][1].ToString();
DropDownList1.Text = dt.Rows[0][2].ToString();
DropDownList2.Text = dt.Rows[0][3].ToString();
TextBox5.Text = dt.Rows[0][9].ToString();
TextBox6.Text = dt.Rows[0][4].ToString();
TextBox7.Text = dt.Rows[0][5].ToString();
TextBox8.Text = dt.Rows[0][6].ToString();
TextBox9.Text = dt.Rows[0][7].ToString();
TextBox10.Text = dt.Rows[0][8].ToString();
}
//TextBox2.Focus();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
protected void Button1_Click(object sender, EventArgs e) //Submit button
{
try
{
string s1 = TextBox1.Text;
Response.Write(s1);
string s2 = TextBox2.Text;
Response.Write(s2);
string s3 = DropDownList1.Text;
Response.Write(s3);
string s4 = DropDownList2.Text;
Response.Write(s4);
string s5 = TextBox5.Text;
Response.Write(s5);
string s6 = TextBox6.Text;
Response.Write(s6);
string s7 = TextBox7.Text;
Response.Write(s7);
string s8 = TextBox8.Text;
Response.Write(s8);
string s9 = TextBox9.Text;
Response.Write(s9);
string s10 = TextBox10.Text;
Response.Write(s10);
string sk = "update trainee_master set Name='" + TextBox2.Text + "',Discipline='" + DropDownList1.Text + "',Branch='" + DropDownList2.Text + "',Mobile_No='" + TextBox6.Text + "',Email='" + TextBox7.Text + "',Guide_PNo='" + TextBox8.Text + "',Guide_Name='" + TextBox9.Text + "',Project_Title='" + TextBox10.Text + "',College_Name='" + TextBox5.Text + "' where trainee_master.Reference_Number='" + TextBox1.Text + "'";
cmd1 = new MySqlCommand(sk, mycon);
mycon.Open();
cmd1.ExecuteNonQuery();
Response.Write("<script>window.alert('Record updated Successfully')</script>");
mycon.Close();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
}
}
如何让文本框动态可编辑?
您的页面加载事件每次都会触发。
记住,即使是您在网页上放置的一个简单按钮?
点击每个按钮,甚至点击下拉列表的自动 post-back?
PAGE 加载事件首先触发,每次触发,每次触发。
因此,在您的情况下,页面加载触发器 - 您加载了文本框。
然后用户在该文本框中键入内容。
然后你点击按钮。您的页面首先 运行 秒再次加载,然后是您的按钮。
那么,对于每一页,或者至少 99% 的页面?
您的页面加载事件需要这个:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// YOUR load up code goes here
}
}
因此,您首先需要真实且真实的页面加载。因此,您必须将 on-page 加载代码放在上面的代码存根中。如果您不为 !IsPostBack test/check,那么每次加载控件代码都会 运行,然后您将永远看不到对控件所做的更改,因为该加载事件会触发每次,并在您的按钮单击事件之前触发。
因此,页面加载 - 每次 运行 秒,您单击的每个按钮都 运行 秒。
通过对 !IsPostBack 的测试,您将获得“真正的”第一次页面加载。
我在一个网站上工作,其中有一些文本框的 ReadOnly 值为 false,即它是可编辑的。在页面加载时,用户的原始名称(值)是从数据库加载的,如果其中有一些错误,he/she 可以 change/update。但是当我更改值并单击提交时,它仍然采用以前存储的值而不是给定的新数据。 文本框的 .aspx 代码 片段:
<div class="form-group" style="width: 80%">
<div class="input-group mb-2">
<div class="input-group-prepend">
<div class="input-group-text headDetails">Trainee Name</div>
</div>
<asp:TextBox ID="TextBox2" runat="server" CssClass="form-control"></asp:TextBox>
</div>
</div>
.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
string UserId = Session["new2"].ToString();
Response.Write(UserId);
try
{
mycon = new MySqlConnection("server=localhost;database=trainee;user id=abcd;password=abcde@gea;");
MyCm = new MySqlCommand("select * from trainee_master where trainee_master.Reference_Number='" + UserId.ToString() + "'", mycon);
myad = new MySqlDataAdapter(MyCm);
DataTable dt = new DataTable();
myad.Fill(dt);
if (dt.Rows.Count > 0)
{
TextBox1.Text = dt.Rows[0][0].ToString();
TextBox2.Text = dt.Rows[0][1].ToString();
DropDownList1.Text = dt.Rows[0][2].ToString();
DropDownList2.Text = dt.Rows[0][3].ToString();
TextBox5.Text = dt.Rows[0][9].ToString();
TextBox6.Text = dt.Rows[0][4].ToString();
TextBox7.Text = dt.Rows[0][5].ToString();
TextBox8.Text = dt.Rows[0][6].ToString();
TextBox9.Text = dt.Rows[0][7].ToString();
TextBox10.Text = dt.Rows[0][8].ToString();
}
//TextBox2.Focus();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
protected void Button1_Click(object sender, EventArgs e) //Submit button
{
try
{
string s1 = TextBox1.Text;
Response.Write(s1);
string s2 = TextBox2.Text;
Response.Write(s2);
string s3 = DropDownList1.Text;
Response.Write(s3);
string s4 = DropDownList2.Text;
Response.Write(s4);
string s5 = TextBox5.Text;
Response.Write(s5);
string s6 = TextBox6.Text;
Response.Write(s6);
string s7 = TextBox7.Text;
Response.Write(s7);
string s8 = TextBox8.Text;
Response.Write(s8);
string s9 = TextBox9.Text;
Response.Write(s9);
string s10 = TextBox10.Text;
Response.Write(s10);
string sk = "update trainee_master set Name='" + TextBox2.Text + "',Discipline='" + DropDownList1.Text + "',Branch='" + DropDownList2.Text + "',Mobile_No='" + TextBox6.Text + "',Email='" + TextBox7.Text + "',Guide_PNo='" + TextBox8.Text + "',Guide_Name='" + TextBox9.Text + "',Project_Title='" + TextBox10.Text + "',College_Name='" + TextBox5.Text + "' where trainee_master.Reference_Number='" + TextBox1.Text + "'";
cmd1 = new MySqlCommand(sk, mycon);
mycon.Open();
cmd1.ExecuteNonQuery();
Response.Write("<script>window.alert('Record updated Successfully')</script>");
mycon.Close();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
}
}
如何让文本框动态可编辑?
您的页面加载事件每次都会触发。
记住,即使是您在网页上放置的一个简单按钮?
点击每个按钮,甚至点击下拉列表的自动 post-back?
PAGE 加载事件首先触发,每次触发,每次触发。
因此,在您的情况下,页面加载触发器 - 您加载了文本框。
然后用户在该文本框中键入内容。
然后你点击按钮。您的页面首先 运行 秒再次加载,然后是您的按钮。
那么,对于每一页,或者至少 99% 的页面?
您的页面加载事件需要这个:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// YOUR load up code goes here
}
}
因此,您首先需要真实且真实的页面加载。因此,您必须将 on-page 加载代码放在上面的代码存根中。如果您不为 !IsPostBack test/check,那么每次加载控件代码都会 运行,然后您将永远看不到对控件所做的更改,因为该加载事件会触发每次,并在您的按钮单击事件之前触发。
因此,页面加载 - 每次 运行 秒,您单击的每个按钮都 运行 秒。
通过对 !IsPostBack 的测试,您将获得“真正的”第一次页面加载。