Menar du efter en postback? Jag förstår inte riktigt ditt exempel men lösningen är ungefär såhär: Så här ser koden ut: Precis som Jonas skrev ovan. <code> Jag får bara felmeddelanden om att Page inte existerar.Behålla selected i dropdown efter Page_Load
Finns det någon enkel lösning på följande med hjälp av ASP.NET / C#:
Jag har dropdown som inte vill behålla valt värde (Selected) efter omladdning av sidan.
Dropdown populeras från ett databasfält. Men nedanstående kod fungerar på samma dropdown om den är statiskt, dvs inte är kopplad till databas.
protected void Page_Load(object sender, EventArgs e)
{
myManufact = Convert.ToString(droplistmanufacturer.SelectedItem.Value());
} Sv: Behålla selected i dropdown efter Page_Load
<code>
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.isPostBack)
{
dindropdownlist.DataSource = källa;
dindropdownlist.DataBind();
}
}
</code>
if(!Page.isPostBack) säger väl sig själv, den här koden ska endast köras om sidan inte postas tillbaka.
Om du bindar dropdownen på nytt vid postbackskrivs den om och selected försvinner.Sv:Behålla selected i dropdown efter Page_Load
Själva dropdown ligger i en egen metod. Det jag försökt göra här i Page_Load är att vid försöka fånga selected value i dropdownen och stoppa i det i en variabel. Denna variabel används sedan senare i koden för nya databasfrågor. Problemet är vid omladdning av sidan behålls inte det valda värdet.
Kort sagt hur behåller jag selected value i dropdown efter omladdning av sidan ?
protected void Page_Load(object sender, EventArgs e)
{
Populate1();
myManufact = Convert.ToString(droplistmanufacturer.SelectedItem.Value);
}
public void Populate1()
{
OleDbConnection lab3ConnectionString = new OleDbConnection();
lab3ConnectionString.ConnectionString = WebConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
Sql = ("SELECT * FROM tbManufacturer");
OleDbCommand myCommand = new OleDbCommand(Sql, Conn);
OleDbDataReader ddlValues;
myCommand.Connection.Open();
ddlValues = myCommand.ExecuteReader();
droplistmanufacturer.DataSource = ddlValues;
droplistmanufacturer.DataValueField = "manufactID";
droplistmanufacturer.DataTextField = "manufacturer";
droplistmanufacturer.DataBind();
//myCommand.Connection.Close();
//myCommand.Connection.Dispose();
}Sv: Behålla selected i dropdown efter Page_Load
<code>
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostback)
{
Populate1();
myManufact = Convert.ToString(droplistmanufacturer.SelectedItem.Value);
}
}
public void Populate1()
{
OleDbConnection lab3ConnectionString = new OleDbConnection();
lab3ConnectionString.ConnectionString = WebConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
Sql = ("SELECT * FROM tbManufacturer");
OleDbCommand myCommand = new OleDbCommand(Sql, Conn);
OleDbDataReader ddlValues;
myCommand.Connection.Open();
ddlValues = myCommand.ExecuteReader();
droplistmanufacturer.DataSource = ddlValues;
droplistmanufacturer.DataValueField = "manufactID";
droplistmanufacturer.DataTextField = "manufacturer";
droplistmanufacturer.DataBind();
//myCommand.Connection.Close();
//myCommand.Connection.Dispose();
}
</code>Sv:Behålla selected i dropdown efter Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if(!page.isPostBack) {
//Om det är första gången sidan laddas ska dropdownen fyllas
Populate1();
} else {
//Om sidan har postats så spara selected i en variabel.
myManufact = Convert.ToString(droplistmanufacturer.SelectedItem.Value);
}
}
</code>Sv: Behålla selected i dropdown efter Page_Load
... samt isPostBack inte existerar i Current context
... samt System.InvalidOperationException
... samt oräkneliga saknade assemblies. Vad är det jag missar ?
Så här ser det ut i huvudet:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Web.Configuration;
mvh
TorbjörnSv:Behålla selected i dropdown efter Page_Load
Glömde att C# är extremt känsligt för stora och små bokstäver.
Nu lirar det.
Upptäckte dessutom på vägen att det mycket enkelt går att skapa en slags OnClick-händelse genom att lägga till en AutoPostBack=true i aspx-sidan.
Stort tack !
mvh
Torbjörn