c#代码中的下拉列表错误
本文关键字:下拉列表 错误 代码 | 更新日期: 2023-09-27 18:10:04
我想在页面加载时显示下拉列表中的值,该值为"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>
和我的c#代码:
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)
{
}
}
,但问题是,当我的页面加载它给出了一个错误'DropDownList1'有一个无效的SelectedValue,因为它不存在于项目列表中。参数名称:value"
我正在使用ASP。. Net c#, SQL Server 2008.
下拉列表的text
属性获取或设置SelectedValue
。由于您的DataValueField
设置为"id",您需要将Text
属性设置为"12"。
将文本移动到LoadComplete事件
void Page_LoadComplete(object sender, EventArgs e)
{
DropDownList1.Text = "1 Year";
}
列表绑定在页面加载中没有发生,因此列表不能接受列表中没有的另一个值。在页面加载后设置该值将允许它使用现有值。