webForumDet fria alternativet

DropDownList Selected

.NETur .NET

13 svar · 512 visningar · startad av thevice

Medlem sedan dec. 2005198 inlägg
Frågan#1

Hej!

Jag fyller min DropDownList på detta sett:

System.Collections.ArrayList arrX = new System.Collections.ArrayList();

arrX.Add("A");
arrX.Add("B");
arrX.Add("C");

ddlX.DataSource = arrX;
ddlX.DataBind();

Sedan på sidan:

<asp:DropDownList ID="ddlX" runat="server" />

Hur gör jag för att kolla i databasen vilket värde jag har där och sedan gör t.ex B selected?

Finns det något bättre sett att fylla min dropdownlist och sedan kolla vilken som ska vara selected?

/ Timmie

Medlem sedan feb. 2005280 inlägg
#2

Man kan göra såhära:

 ListItem li;
 li = new ListItem("text", "value");
 if(CheckIfSelectedMetod("value"))
   li.Selected;
 ddl.Items.Add(li);
 ddl.DataBind();
Medlem sedan jan. 20012 204 inlägg
#3

...

Medlem sedan dec. 2005198 inlägg
#4

Frequz blir inte det settet ganska jobbigt att göra med tanke på att jag fyller min drop downlist med ca 50 olika saker?

P: ... vad?

Medlem sedan feb. 2005280 inlägg
#5

Jo jag antog att du loopar ut datat med en SqlDataReader alltså...

Medlem sedan jan. 20012 204 inlägg
#6

thevice skrev:

P: ... vad?

frequz hann före, om du vet vilket index det är på så kan du ju göra
ddl.SelectedIndex = 2. Vilket blir C i ditt fall.

Medlem sedan dec. 2005198 inlägg
#7

Tack det löste problemet, men har ett annat problem - Databasen vägrar uppdateras!

Jag gör så här:

protected System.Web.UI.WebControls.DropDownList ddlX;

public void UpdateQuestions_Click(object obj, EventArgs e)
{
	using (MySqlConnection objConnection = new MySqlConnection(ConfigurationManager.AppSettings["DatabaseConnection"]))
	{
		using (MySqlCommand objCommand = new MySqlCommand("", objConnection))
		{
			objCommand.CommandText = "UPDATE tbl SET strX = ?strX WHERE intID = ?intID";
			
			objCommand.Parameters.Add(new MySqlParameter("?intID", Convert.ToInt32(Session["intID"])));
			objCommand.Parameters.Add(new MySqlParameter("?strX", Convert.ToString(ddlX.Text)));
		}
	}
}
<asp:DropDownList ID="ddlX" runat="server" />
<asp:Button ID="btnUpdate" runat="server" Text="Uppdatera!" OnClick="UpdateQuestions_Click" />

Jag ser inte vad jag gör för fel? Värdet setts inte in utan databas-fältet blir tomt.
Om jag däremot gör så här så uppdateras det:

objCommand.Parameters.Add(new MySqlParameter("?strX", Convert.ToString("Hejsan")));

Vad gör jag för fel?
/ Timmie

Medlem sedan juni 20019 024 inlägg
#8

Du uppdaterar aldrig databasen. objCommand.ExecuteNonQuery() krävs.

Medlem sedan dec. 2005198 inlägg
#9

Jag använder det, har:
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();

Efter mina Parameters, råkade visst ta bort det från koden när jag klistrade och klippte.

Medlem sedan juni 20019 024 inlägg
#10

Du får visa mer kod.

Eller så kan det vara att du binder datan efter postback och därmed returnerar fel värde (kolla Page.IsPostBack).

Medlem sedan dec. 2005198 inlägg
#11

Tackar if (!Page.IsPostBack) löste det!

Medlem sedan jan. 2007152 inlägg
#12

Det finns en metod för att hitta ett item med ett visst värde eller text och sedan är det lätt att göra den selected:

ddl.Items.FindByValue(Value).Selected = true;
eller
ddl.Items.FindByText(Text).Selected = true;
Medlem sedan juni 20019 024 inlägg
#13

butiko skrev:

Det finns en metod för att hitta ett item med ett visst värde eller text och sedan är det lätt att göra den selected:

ddl.Items.FindByValue(Value).Selected = true;
eller
ddl.Items.FindByText(Text).Selected = true;

...vilket användes i ASP.NET 1.0 då metoden SelectedValue inte kom förrän i version 1.1. Sedermera går det att använda Text, precis som övriga textkontroller, vilken dök upp i version 2.0.

Det är därmed betydligt enklare att skriva ddl.Text = "value" (även om jag föredrar SelectedValue av semantiska skäl).

Medlem sedan jan. 2007152 inlägg
#14

Ah, det var som sjutton... :)

143 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)