【发布时间】:2017-02-07 08:32:46
【问题描述】:
我在 ASP.NET 中有一个文本框和一个标签,我想使用数据库中的值自动更新标签,该值是使用文本框中输入的内容获取的。这应该在文本框中的文本更改时动态完成,如果在数据库中找到匹配项,则相应的值应显示在标签字段中(无需刷新页面)。在这种情况下,我将在文本框中输入员工 ID,员工姓名应显示在标签中。我正在使用以下代码,
<asp:ScriptManager ID="script_manager" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="update_name" runat="server">
<ContentTemplate>
<asp:TextBox ID="text_empID" TextMode="Number" MaxLength="6" AutoPostBack="true" OnTextChanged="text_empID_TextChanged" runat="server"></asp:TextBox>
<asp:Label ID="label_empName" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
后面的代码如下,
protected void text_empID_TextChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select EmployeeName from EmployeeTable where EmployeeID=@id", con);
cmd.Parameters.AddWithValue("@id", text_empID.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
label_empName.Text = dt.Rows[0]["EmployeeName"].ToString();
}
}
但这不起作用。同样在文本框中输入一个值后,如果我在框外单击,里面的文本就会消失。有没有其他方法可以做到这一点?还是我在这里做错了什么?
【问题讨论】:
-
@JeremyKern 他有一个脚本管理器和一个更新面板