获取下拉列表选项的值以显示到文本框

时间:2016-09-07 02:21:25

标签: c# asp.net

我已使用以下代码将选项放入数据库的下拉列表中:

if (!IsPostBack)
    {pageloaddata.retrievetbldata("Select EmpId, LastName+', '+FirstName+' '+MiddleName AS EmployeeName from Employee");
        DropListEmployeeName.DataSource = pageloaddata.SQLTable;
        DropListEmployeeName.DataTextField = "EmployeeName";
        DropListEmployeeName.DataValueField = "EmpID";
        DropListEmployeeName.DataBind();
        DropListEmployeeName.Items.Insert(0, "Select")
}

因此,员工姓名的值必须是其员工ID(EmpID)

现在我想要发生的是,如果用户选择了一名员工,则必须将selectedValue(即EmpID)显示在文本框中。这是我创建的小代码,不起作用,对我认识的其他人来说可能很容易请帮助初学者,谢谢:)

protected void DropListEmployeeName_SelectedIndexChanged(object sender, EventArgs e)
{
    string empSelected = DropListEmployeeName.SelectedValue.ToString();
    employID.Text = empSelected;
}

注意:数据库中的EmpID实际上是一个int,如果我将其称为字符串,这是否重要?如果是,请建议最佳代码

2 个答案:

答案 0 :(得分:1)

如果您想在更改后使用Jquery捕获DropDown的值,请查看此示例,我创建了click here或运行下面的代码段。

$(document).ready(function () {

   $("#SelectId").change(function () {
      
      var selectObj = $(this);
      
      $("#inputID").val(selectObj.val());
   
   });

});
<html>
<head>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
</head>

<body>

<select name="mySelect" id="SelectId">
  <option value="FirstOption">First Option</option>
  <option value="SecondOption">Second Option</option>
  <option value="ThirdOption">Third Option</option>
  <option value="FourthOption">Fourth Option</option>
</select>

<input id="inputID" type="text" name="sampleText" />

</body>

</html>

但是如果你真的想从你的DropDown控件中使用Postback方法试试这个。

<asp:DropDownList ID="DropListEmployeeName" runat="server" AutoPostBack="True" 
    onselectedindexchanged="DropListEmployeeName_SelectedIndexChanged">
</asp:DropDownList>

答案 1 :(得分:1)

检查您的下拉列表AutoPostBack =“True”属性。

string empSelected =  Convert.Tostring(DropListEmployeeName.SelectedItem.Value);

其他方式

var empSelected = ((DropDownList)sender).SelectedValue;
        string semSelected = selectedValue;