C# c代码中的dropdownlist错误

C# c代码中的dropdownlist错误,c#,asp.net,C#,Asp.net,我想在页面加载时在DropDownList中显示一个值,该值为“1年”。 这是我的数据库表 id instal 0 Choose 6 6 Month 12 1 Year 24 2 Year 36 3 Year 这是我的ASPX代码: <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherit

我想在页面加载时在DropDownList中显示一个值,该值为“1年”。 这是我的数据库表

id  instal
0   Choose
6   6 Month
12  1 Year
24  2 Year
36  3 Year
这是我的ASPX代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
        DataSourceID="SqlDataSource1" DataTextField="instal" DataValueField="id" 
        onselectedindexchanged="DropDownList1_SelectedIndexChanged">
    </asp:DropDownList>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:paconn %>" 
        SelectCommand="SELECT * FROM [cms_instal] ORDER BY [id]">
    </asp:SqlDataSource>
</asp:Content>
但问题是,当我的页面被加载时,它会给出一个错误 “'DropDownList1'有一个SelectedValue,该值无效,因为它不在项目列表中。参数名称:value”

我正在使用ASP.Net C#,SQL Server 2008。

将文本移动到


页面加载中未发生列表绑定,因此列表无法获取不在列表中的其他值。在页面加载后设置该值将允许它使用现有值

下拉列表的
text
属性获取或设置
SelectedValue
。由于您的
DataValueField
设置为“id”,您需要将
Text
属性设置为“12”。

您可以尝试此DropDownList1.SelectedItem.Text=“1年”;由于列表绑定尚未完成,您需要在加载事件之后或控件已正确绑定之后设置该值。因此,它需要从数据源加载值,以允许它从列表中设置值。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections;
using System.Web.SessionState;

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DropDownList1.Text = "1 Year";
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}
    void Page_LoadComplete(object sender, EventArgs e)
    {
        DropDownList1.Text = "1 Year"; 
    }