我已使用以下代码将选项放入数据库的下拉列表中:
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,如果我将其称为字符串,这是否重要?如果是,请建议最佳代码
答案 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;