私はASP.NETにテキストボックスとラベルを持っていて、テキストボックスに入力された内容を使用して取り出されたデータベースの値でラベルを自動的に更新します。これは、テキストボックス内でテキストが変更されたときに動的に行われ、データベース内で一致するものが見つかると、対応する値がラベルフィールドに表示されます(ページリフレッシュなし)。この場合、私はテキストボックスに従業員IDを入力し、従業員名はラベルに表示する必要があります。私は、次のようには、テキストボックスasp.netにコンテンツを入力するときに自動的にラベルを更新します
<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 [email protected]", 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();
}
}
を次のコードを使用しています。しかし、これは動作しません。また、テキストボックスに値を入力した後、ボックスの外側をクリックすると、内部のテキストが消えます。これを行うための他の方法はありますか?私はここで何か間違っているのですか?
彼はスクリプトマネージャと更新パネル – Ted