【发布时间】:2016-05-19 21:02:33
【问题描述】:
好的,所以我有一个最初从数据库填充的下拉列表。现在基于数据表,我希望所选值等于数据库中的文本。无论我做什么,它只显示“---选择一个---”这是我手动添加到下拉列表项目列表中的唯一项目,如果我拉的值为空(或者这就是我想要的),则显示默认值做)
protected void Page_Load(object sender, EventArgs e)
{
Master.TopLabel = "Survey Creation";
if (!IsPostBack)
{
SqlConnection Connection = DatabaseConnection.GetSurveySystemConnection();
string sqlquery = "SELECT S.[Survey_Desc], S.[Start_Date], C.[Category_Name] ,S.[End_Date], S.[Audience] FROM [Survey] S Inner Join Category C On S.Category_ID = C.ID Where S.[ID] =" + Session["Survey_ID"];
SqlCommand cmd = new SqlCommand(sqlquery, Connection);
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable DT = new DataTable();
da.Fill(DT);
if (DT != null)
{
DescriptionMemo.Text = DT.Rows[0]["Survey_Desc"].ToString();
CategoryDropDownList.SelectedIndex = CategoryDropDownList.Items.IndexOf(CategoryDropDownList.Items.FindByText(DT.Rows[0]["Category_Name"].ToString()));
StartDateCalender.SelectedDate = DateTime.Parse(DT.Rows[0]["Start_Date"].ToString());
EndDateCalender.SelectedDate = DateTime.Parse(DT.Rows[0]["End_Date"].ToString());
string Audience = DT.Rows[0]["Audience"].ToString();
if (Audience == "Students Only")
{
AudienceRadioGroup.Items[0].Selected = true;
}
else if (Audience == "Staff Only")
{
AudienceRadioGroup.Items[1].Selected = true;
}
else
{
AudienceRadioGroup.Items[2].Selected = true;
}
}
Connection.Close();
}
}
aspx 页面中的DropDownList。
<asp:DropDownList ID="CategoryDropDownList" runat="server"
DataSourceID="SqlDataSource1" DataTextField="Category_Name"
DataValueField="Category_Name" AppendDataBoundItems="true" Height="16px"
Width="200px">
<asp:ListItem>---Select One---</asp:ListItem>
</asp:DropDownList>
sql 数据源选择命令。
SELECT [Category_Name] FROM [Category]
编辑:这是完整的代码,但我不知道它是否相关,抱歉。
【问题讨论】:
-
你能提供给我们完整的 cade 吗?你确定你的下拉列表的数据绑定是在你的 page_load 之前完成的吗?
-
总是故意选择第一行?
-
也许你可以尝试在 pre_render 函数中进行。您复制下面提供的代码作为答案,但不是在 page_load 中复制它,而是在 pre_render 中复制它
-
protected void Page_PreRender(object sender, EventArgs e) {...} Page Life Cycle
-
您也可以使用 SelectedValue 代替 SelectedItem。 CategoryDropDownList.SelectedValue = DT.Rows[0]["Category_Name"].ToString()
标签: c# asp.net drop-down-menu