我在ASP.NET中有一个文本框和一个标签,我希望使用从文本框中输入的内容获取的数据库中的值自动更新标签。这应该在文本框中更改文本时动态完成,如果在数据库中找到匹配项,则相应的值应显示在标签字段中(无页面刷新)。在这种情况下,我将在文本框中输入员工ID,员工姓名应显示在标签中。我使用以下代码,
ifplayer.Attributes.Add("src", "//www.youtube.com/embed/videoid");
ifplayer.Attributes.Add("onload", "ifplayer_onPlayerStateChange();");
背后的代码如下,
<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>
但这不起作用。在文本框中输入值后,如果我在框外单击,则内部文本消失。有没有其他方法可以做到这一点?或者我在这里做错了什么?
答案 0 :(得分:1)
我建议您添加button
因为text_changed
事件仅在文本框blurs
(失去焦点)时触发。
这是一种非常奇怪的行为,并且大多数用户都不习惯它并且不会期望它。
<ContentTemplate>
<asp:TextBox ID="text_empID" TextMode="Number" MaxLength="6" runat="server></asp:TextBox>
<asp:button id="btnSearch" runat="server" OnClick="text_empID_TextChanged" />
<asp:Label ID="label_empName" runat="server"></asp:Label>
</ContentTemplate>
无论如何,您是否添加了断点?事件发生了吗?你在DataTable中得到任何数据吗?
修改强>
在您上次发表评论后,我确信您正在清除页面加载时标签的内容。
请确保您只在以下情况下执行此操作:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
label_empName.Text = "";
}
}