【问题标题】:dropdownlist error in c# codeC#代码中的下拉列表错误
【发布时间】:2014-06-25 04:42:53
【问题描述】:

我想在页面加载时在 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>

及其我的 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,因为它不存在于项目列表中。参数名称:值"

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

【问题讨论】:

标签: c# asp.net


【解决方案1】:

DropDownList 的text 属性获取或设置SelectedValue。由于您的DataValueField 设置为“id”,因此您需要将Text 属性设置为“12”。

【讨论】:

    【解决方案2】:

    将文字移至LoadComplete event

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

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

    【讨论】:

    • 您需要在加载事件后或控件正确绑定后设置值,因为列表绑定尚未完成。所以它需要从数据源中加载值以允许它从列表中设置一个值。 msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 2019-01-10
    • 2012-03-04
    • 1970-01-01
    • 2012-03-10
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多