我有以下员工表,
姓名 | 经验 | 地点 emp1 3 年 aaa emp2 2 岁 bbb emp3 4 年 ccc emp4 1 年 ddd
我有下拉列表,我已绑定到表的名称列。我有 2 个文本框:txtExp
和txtLoc
. 我想根据下拉列表中的选定值填充文本框以体验和定位表的列,或者通过 DDL 的索引更改或按钮的单击事件。我想在asp.net c#中形成一个代码隐藏文件
我有以下员工表,
姓名 | 经验 | 地点 emp1 3 年 aaa emp2 2 岁 bbb emp3 4 年 ccc emp4 1 年 ddd
我有下拉列表,我已绑定到表的名称列。我有 2 个文本框:txtExp
和txtLoc
. 我想根据下拉列表中的选定值填充文本框以体验和定位表的列,或者通过 DDL 的索引更改或按钮的单击事件。我想在asp.net c#中形成一个代码隐藏文件
第 1 步:HTML - 有一个执行回发的下拉列表:
<asp:DropDownList ID="ddlName" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="ddlName_SelectedIndexChanged">
<asp:ListItem Value="1">Emp 1</asp:ListItem>
<asp:ListItem Value="2">Emp 2</asp:ListItem>
<asp:ListItem Value="3">Emp 3</asp:ListItem>
</asp:DropDownList>
第 2 步:C# - 执行更新控件的代码:
protected void ddlName_SelectedIndexChanged(object sender, EventArgs e)
{
// Make a call to database/method to retrieve the Employee record based on
// Name/ID, which is bound to the drop down. Assumption that you will
// use an object called Employee with name & location properties)
Employee emp = GetEmployeeByID(ddlName.SelectedValue);
txtExp.Text = emp.Name;
txtLoc.Text = emp.Location;
}
如果你想显示这两个东西,那么你必须连接你正在获取记录以绑定下拉列表的值,我正在粘贴代码,它将告诉你如何通过名称获得体验(下拉列表中的选定值)
第一步是:
将要从中绑定下拉列表的数据表保存到 ViewState
然后在下拉的 selectedindexchanged 事件上使用以下代码:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (ViewState["dt"] != null)
{
DataTable dt = (DataTable)ViewState["dt"];
if (dt.Rows.Count > 0)
{
string sqlFilter = "name = '" + DropDownList1.SelectedItem.Text + "'";
DataRow[] data = dt.Select(sqlFilter);
if (data.Length > 0)
{
TextBox1.Text = data["Exp"].ToString();
}
}
}
}
或者,如果您想将其传递给 db 以获取体验和位置,请按以下方式进行:
clsArtBook obj = new clsArtBook();
DataTable dt = new DataTable();
dt = obj.getDetailsbyName(DropDownList1.SelectedItem.Text);
if (dt.Rows.Count > 0) {
TextBox1.Text = dt.Rows[0]["expeince"].ToString();
TextBox1.Text = dt.Rows[0]["location"].ToString();
}
创建一个存储过程,它将按名称获取详细信息,例如:
create proc proc_GetDetailsByName
(
@name varchar(100)
)
as
if exists(select 1 from tblemployee where name=@name)
begin
select location,experince from tblemployee where name=@name
end
它会解决你的问题