Tehnika je ASP.NET 2.0. Na formi imam jedan ListBox i jednu DropDownListu. ListBox bindujem na HashTabelu koju kreiram iz XML-a na Page_Load i to radi. DropDownListu bindujem na SQLDataSource koji sam vezao na ListBox tako sto na PostBack SQLDataSource uzima ListBox.SelectedValue kao parametar za select upit . Samo vezivanje radi odlicno ali problem je sto kad selektujem nesto u ListBoxu napuni se DropDownLista ali ListBox ne zadrzi svoje stanje tj. promeni se selektovani Item u ListBoxu. Na ListBox-u je ViewState=true dok je za DropDownListu ViewState=false(mada sam probao sve kombinacije i neide). Da li neko ima neko resenje posto na internetu jedio sto sam nasao je da se za DropDownListu ViewState postavi na false , ali to neradi?
Zadrzavanje ListBox postback state
Zaključano
Zakačeno
Zar niko nezna kako da zadrzim selektovani ListBoxItem posle ListBox postbeka?
napravi test projekat koji NE radi tako kako treba da radi i priheftaj ga uz sledeći post.
Potpis
Acta, non verba!
Provalio sam da je problem u bindovanju liste i to ne samo na SortedListu nego na bilo sta. Ako je ne bindujem onda sve radi kako treba. Primer koda gde bindujem listu i pozivam na Page_load ako je !Page.IsPostback:
XmlDocument doc = new XmlDocument();
SortedList compList = new SortedList();
doc.Load(Server.MapPath(ConfigurationManager.AppSettings["xml_path"].ToString()));
string xPath = "/Matches/Match/League[LeagueID!=0]/../Teams/GuestTeam[GuestTeamID =0]/../HomeTeam[HomeTeamID=0]/../../. | /Matches/Match/League[LeagueID!=0]/../Teams/GuestTeam[GuestTeamID !=0]/../HomeTeam[HomeTeamID=0]/../../. | " +
"/Matches/Match/League[LeagueID!=0]/../Teams/GuestTeam[GuestTeamID =0]/../HomeTeam[HomeTeamID!=0]/../../.";
XmlNodeList nodeList = doc.SelectNodes(xPath);
for (int i = 0; i < nodeList.Count; i++)
{
if (!compList.ContainsKey(nodeList.ChildNodes[3].FirstChild.FirstChild.InnerText) && nodeList.ChildNodes[3].FirstChild.FirstChild.InnerText != "")
{
if (nodeList.ChildNodes[3].FirstChild.LastChild.InnerText == "0")
{
compList.Add(nodeList.ChildNodes[3].FirstChild.FirstChild.InnerText, nodeList.ChildNodes[2].LastChild.InnerText);
}
}
if (!compList.ContainsKey(nodeList.ChildNodes[3].LastChild.FirstChild.InnerText) && nodeList.ChildNodes[3].LastChild.FirstChild.InnerText != "")
{
if (nodeList.ChildNodes[3].LastChild.LastChild.InnerText == "0")
{
compList.Add(nodeList.ChildNodes[3].LastChild.FirstChild.InnerText, nodeList.ChildNodes[2].LastChild.InnerText);
}
}
}
lbTakmicari.DataSource = compList;
lbTakmicari.DataValueField = "Value";
lbTakmicari.DataTextField = "Key";
lbTakmicari.DataBind();
Ima li neko neki predlog?
XmlDocument doc = new XmlDocument();
SortedList compList = new SortedList();
doc.Load(Server.MapPath(ConfigurationManager.AppSettings["xml_path"].ToString()));
string xPath = "/Matches/Match/League[LeagueID!=0]/../Teams/GuestTeam[GuestTeamID =0]/../HomeTeam[HomeTeamID=0]/../../. | /Matches/Match/League[LeagueID!=0]/../Teams/GuestTeam[GuestTeamID !=0]/../HomeTeam[HomeTeamID=0]/../../. | " +
"/Matches/Match/League[LeagueID!=0]/../Teams/GuestTeam[GuestTeamID =0]/../HomeTeam[HomeTeamID!=0]/../../.";
XmlNodeList nodeList = doc.SelectNodes(xPath);
for (int i = 0; i < nodeList.Count; i++)
{
if (!compList.ContainsKey(nodeList.ChildNodes[3].FirstChild.FirstChild.InnerText) && nodeList.ChildNodes[3].FirstChild.FirstChild.InnerText != "")
{
if (nodeList.ChildNodes[3].FirstChild.LastChild.InnerText == "0")
{
compList.Add(nodeList.ChildNodes[3].FirstChild.FirstChild.InnerText, nodeList.ChildNodes[2].LastChild.InnerText);
}
}
if (!compList.ContainsKey(nodeList.ChildNodes[3].LastChild.FirstChild.InnerText) && nodeList.ChildNodes[3].LastChild.FirstChild.InnerText != "")
{
if (nodeList.ChildNodes[3].LastChild.LastChild.InnerText == "0")
{
compList.Add(nodeList.ChildNodes[3].LastChild.FirstChild.InnerText, nodeList.ChildNodes[2].LastChild.InnerText);
}
}
}
lbTakmicari.DataSource = compList;
lbTakmicari.DataValueField = "Value";
lbTakmicari.DataTextField = "Key";
lbTakmicari.DataBind();
Ima li neko neki predlog?
Evo i uzivo primer:
http://82.117.207.45/HtmlParser/UpariMeceve.aspx
http://82.117.207.45/HtmlParser/UpariMeceve.aspx
Mislim da sam pronasao gde je greska ali jos uvek ne znam kako da je resim. Problem je sto mi neki Itemi u listboxu imaju isti value. Kad selektujem neki od njih posle postback-a bude selektovan prvi u listi koji ima isti value. Da li postoji neki nacin da se to spreci?
A zašto ne bi jurio selektovani indeks, a ne Value?
Potpis
Winners never quit, quitters never win.
Ne jurim nista. Popunim listbox sa item-ima od kojih neki imaju isti value. Kad uradim postback ostane selektovan samo prvi u listi koji ima isti value. Znaci nigde ne uzimam SelectedValue.