我正在asp.net中编写一个Web应用程序。我有两个文本框,一个字段用于txtEmployeeID,另一个字段用于txtEmployeeName。我将EmployeeName文本框设置为Page_Load事件中的readonly。在我的程序中,我已连接到我的数据库并设置我的存储过程。我现在想要的是当我在EmployeeID文本框中输入ID时,相应的EmployeeName文本框应显示在该文本框中的员工姓名中。
例如。在我的数据库中,我有
employeeID: 000123
employeeName: Jimmy
如果我在txtEmployeeID中键入000123,则Jimmy将在txtEmployeeName中显示该名称。
我正在考虑使用JavaScript来实现这一目标。这就是我的想法,但它所做的只是将文本复制到一个文本框中,并在另一个文本框中显示相同的文本。
function Text() {
var txt1 = document.getElementById('<%= txtEmployeeID.ClientID %>').value;
document.getElementById('<%= txtEmployeeName.ClientID %>').value = txt1;
}
HTML代码:
<asp:TemplateField HeaderText="Employee ID">
<EditItemTemplate>
<asp:TextBox ID="txtEmployeeID" runat="server" Text='<%#Bind("Employee_ID") %>'
Width="90px"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblEmployeeName" runat="server" CssClass="GridInput" Text='<%#Bind("Employee_Name") %>'
Width="90px"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
答案 0 :(得分:2)
如果你想使用OnTextChange事件,你可以这样做;
<asp:UpdatePanel ID="udpEmployee" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtEmployeeID" runat="server" AutoPostBack="true" OnTextChanged="txtEmployeeID_TextChanged"></asp:TextBox>
<asp:TextBox ID="txtEmployeeName" runat="server" ReadOnly="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
在代码背后;
protected void txtEmployeeID_TextChanged(object sender, EventArgs e)
{
//get employee name from DB
string employeeName = GetEmployeeName(txtEmployeeID.Text);
//set employee name on txtEmployeeName
txtEmployeeName.Text = employeeName;
}
我不确定您是如何连接到数据库的,因此无法提供获取值的示例。