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?
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);
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?
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.