1

我有以下员工表,

  姓名 | 经验 | 地点
  emp1 3 年 aaa
  emp2 2 岁 bbb
  emp3 4 年 ccc
  emp4 1 年 ddd

我有下拉列表,我已绑定到表的名称列。我有 2 个文本框:txtExptxtLoc. 我想根据下拉列表中的选定值填充文本框以体验定位表的列,或者通过 DDL 的索引更改或按钮的单击事件。我想在asp.net c#中形成一个代码隐藏文件

4

2 回答 2

1

第 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;
}
于 2013-04-30T12:27:10.680 回答
0

如果你想显示这两个东西,那么你必须连接你正在获取记录以绑定下拉列表的值,我正在粘贴代码,它将告诉你如何通过名称获得体验(下拉列表中的选定值)

第一步是:

将要从中绑定下拉列表的数据表保存到 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

它会解决你的问题

于 2013-04-30T12:26:28.007 回答