0
我有一个表格可以查看和更新记录。数据正在从存储过程中填充。除了我的下拉列表外,一切都可以正常使用。这背后是我的代码:显示下拉列表中的选定值
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
EmployeeIdTextBox.Text = sdr["EmployeeID"].ToString();
EmployeeNameTextBox.Text = sdr["EmployeeName"].ToString();
DepartmentDropDown.DataTextField = sdr["Department"].ToString();
DepartmentDropDown.DataValueField = sdr["Department"].ToString();
DepartmentDropDown.DataBind();
}
}
这是我的aspx:
<div>
EmployeeID:
<asp:TextBox ID="EmployeeIdTextBox" runat="server" CssClass="textBoxWidth" ReadOnly="True"></asp:TextBox>
</div>
<div>
EmployeeName:
<asp:TextBox ID="EmployeeNameTextBox" runat="server" CssClass="textBoxWidth" ReadOnly="True"></asp:TextBox>
</div>
<div>
Department:
<asp:DropDownList ID="DepartmentDropDown" runat="server" CssClass="textBoxWidth"></asp:DropDownList>
</div>
我可以,但是,得到的值在下拉列表中,如果我改变我的aspx像下面,但我更因为我有几个比下面显示的字段更喜欢在后端执行此操作。
<asp:DropDownList ID="DepartmentDropDown" runat="server" CssClass="textBoxWidth"
DataSourceID="SqlDS1" DataTextField="Department"
DataValueField="Department" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDS1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT DISTINCT Department FROM Employees">
</asp:SqlDataSource>
我能做到这一切在一个步骤就像我试图做,或做我需要做这两个步骤?我的问题的后半部分是我还需要拥有与用户相对应的项目,默认情况下会在下拉列表中选中。第二种方法填充下拉列表,尽管没有被选中,因为它是一个单独的查询,所以与我在表单中查看的用户数据没有关联。
你必须在后面的尝试你的代码返回从数据库 –
多个结果集:''DepartmentDropDown .SelectedText = sdr [“Department”]。ToString()'',你需要在第二种方式设置下拉列表中的选定项时,数据绑定在后面的代码下拉 –
@EhsanSajjad错误与您的建议。下拉菜单不包含SelectedText的定义。我有trid使用SelectedItem.Text,但我得到一个错误“对象引用未设置为对象的实例。”除了我在第一个例子中的位置之外,我没有看到数据绑定的位置,这是我在第二个例子中完成的,但没有运气。 – aantiix