下拉列表选定的项目文本始终返回第一个项目文本

我正在使用此代码来填充数据库中的下拉列表。

public void fillcountry() { BL obj = new BL(); DataSet ds = obj.dss("select * from Country "); drplistcountry.DataSource = ds; drplistcountry.DataTextField = "CountryName"; drplistcountry.DataValueField = "CountryId"; drplistcountry.DataBind(); drplistcountry.Items.Insert(0, new ListItem("--Select--", "0")); } 

我在页面load()事件中使用此fillcountry()。 按钮Click事件上的和重新选择selectedit.text

drplistcountry总是显示第一个索引文本,如何解决?

在.aspx页面中:

 <%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default" EnableViewState="true" %> 

对于Dropdownlist Control,将EnableViewState属性设置为true。

在.aspx.cs页面中:

在PageLoad事件中检查以下内容:

 if(!IsPostBack) { fillcountry(); } 

试试这个代码

你只需要调用一次这个函数。

  public void fillcountry() { BL obj = new BL(); DataSet ds = obj.dss("select * from Country "); drplistcountry.DataSource = ds; drplistcountry.DataTextField = "CountryName"; drplistcountry.DataValueField = "CountryId"; drplistcountry.DataBind(); drplistcountry.Items.Insert(0, new ListItem("--Select--", "0")); drplistcountry.SelectedIndex = drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--")); } 

一个简单的方法您可以使用转发器在这样的HTML代码中进行选择

  

从数据库获取数据使用ado.net

  public void fillAlbum() { SqlConnection myconnection = new SqlConnection("Data Source=.;Initial Catalog=person;Integrated Security=True"); SqlDataAdapter myadapter = new SqlDataAdapter("Select CatID,Title from Category", myconnection); DataTable dt = new DataTable(); myadapter.Fill(dt); rpt.DataSource = dt; rpt.DataBind(); } 

并获得选定的价值。 选择元素名称是(“cat”)所以

 string cat = Request.Form["Cat"]; 

并简单地存储到数据库

  SqlConnection myconnection = new SqlConnection("Data Source=.;Initial Catalog=person;Integrated Security=True"); SqlCommand mycommand = new SqlCommand("insert into Picture(Title,Pic,CatID) values(@pname,@pic,@cat)", myconnection); mycommand.Parameters.AddWithValue("pname", txtname.Text.Trim()); mycommand.Parameters.AddWithValue("pic", path); string cat = Request.Form["Cat"]; mycommand.Parameters.AddWithValue("cat", cat.ToString()); myconnection.Open(); mycommand.ExecuteNonQuery(); myconnection.Close(); 

它非常简单但很难找到,检查你的值Datavaluefield的所有项目不应该为空或null。

手段:

 ddl_Name.DataTextField = "NAME"; ddl_Name.DataValueField = "Roll"; 

如果值为空,则表示您无法获得第一项。

DropdownList选择的项目文本值将像这样工作。

 String value="India"; drplist.SelectedIndex = drplist.Items.IndexOf(drplist.Items.FindByText(value)); 

我也面临同样的问题,但在我的情况下,所有项目的下拉值都是相同的,这导致了问题。 因此,请确保正确绑定下拉列表。

🙂