我正在使用此代码填充数据库中的下拉列表。
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()。 按钮点击事件
并重新启动selecteditm.textdrplistcountry始终显示第一个索引文本,如何解决?
答案 0 :(得分:12)
在.aspx页面:
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default"
EnableViewState="true" %>
用于下拉列表控件 将 EnableViewState 属性设置为true。
在.aspx.cs页面中:
在PageLoad事件中检查以下内容:
if(!IsPostBack)
{
fillcountry();
}
答案 1 :(得分:1)
试试此代码
你应该只调用一次这个函数。
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--"));
}
答案 2 :(得分:0)
一种简单的方法 您可以使用转发器在html代码中进行选择,如此
<select id="ddlAlbum" class="form-control" name="Cat">
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<option value='<%#Eval("CatID") %>'>
<%#Eval("Title") %>
</option>
</ItemTemplate>
</asp:Repeater>
</select>
从数据库获取数据使用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();
}
并获取所选值。 选择元素名称是(&#34; cat&#34;)所以
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();
答案 3 :(得分:0)
它非常简单,但很难找到,检查所有项目的值Datavaluefield
不应为空或为空。
意思是:
ddl_Name.DataTextField = "NAME";
ddl_Name.DataValueField = "Roll";
如果值为空,则表示您无法获得第一项。
答案 4 :(得分:0)
DropdownList selected Item Text值将如下所示。
String value="India";
drplist.SelectedIndex = drplist.Items.IndexOf(drplist.Items.FindByText(value));
答案 5 :(得分:-1)
我也遇到了同样的问题,但是在我的情况下,所有项目的下拉值都相同,这导致了问题。 因此,请确保您正确绑定了下拉列表。
:)