Как я могу получить SelectedValue потрудиться вернуть фактическое выбранное значение - PullRequest
1 голос
/ 28 мая 2009

Я использую следующие фрагменты кода для заполнения раскрывающегося списка при загрузке страницы из содержимого в XML-файле ...

foreach (System.Xml.XmlNode item in root.SelectNodes(@"/markers/marker"))
            {
                string tmpValue = item.Attributes["location"].Value + "#" + item.Attributes["lat"].Value + "#" + item.Attributes["lng"].Value;
                destination.Items.Add(new ListItem(item.Attributes["location"].Value, tmpValue));
                tmpNCount++;
            }

У меня есть кнопка, которую я планировал использовать для поиска.

защищенный void qsearch_Click (отправитель объекта, EventArgs e) {

try
{
    string httpPath = Convert.ToString(UrlMaker.httpURL());
    //sysmessage.Text = "TEST" + destination.SelectedValue.ToString();
    string[] Split = destination.SelectedValue.ToString().Split(new Char[] { '#' });
    string tmpLocation = Convert.ToString(Split[0]);
    string tmpLat = Convert.ToString(Split[1]);
    string tmpLon = Convert.ToString(Split[2]);
    string tmpRad = radius.SelectedValue.ToString();


    Response.Redirect(httpPath + "search.aspx?func=longlat&country=gbr&lng="+tmpLon+"&lat="+tmpLat+"&rad="+tmpRad+"&txt="+tmpLocation+"&test=1");
}
catch(Exception ex) { Response.Write("Error on Redirect"); }

}

Поиск выполняется, но кровавый предмет возвращает значение первого элемента в раскрывающемся списке, а не того, который я выбираю.

Надеюсь, я упускаю что-то действительно очевидное.

Спасибо


решаемые

Уничтожил функцию щелчка как бессмысленную и использовал следующее.

if (IsPostBack)
        {

            try
            {
                string fdata = Request.Form["dest"];
                string[] Split = fdata.ToString().Split(new Char[] { '#' });
                    string tmpLocation = Convert.ToString(Split[0]);
                    string tmpLat = Convert.ToString(Split[1]);
                    string tmpLon = Convert.ToString(Split[2]);
                    string tmpRad = radius.SelectedValue.ToString();                
                Response.Redirect(httpPath + "search.aspx?func=longlat&country=gbr&lng=" + tmpLon + "&lat=" + tmpLat + "&rad=" + tmpRad + "&txt=" + tmpLocation + "&test=1");
            }
            catch(Exception ex) { Response.Write("Error on Redirect" + ex.ToString()); }

        }

1 Ответ

1 голос
/ 28 мая 2009

Предполагается, что вы очищаете выпадающий список и вызываете свой код для заполнения его при каждой загрузке страницы, что приведет к выбору первого элемента.

Вы должны убедиться, что этот код находится в пределах if(!IsPostBack){ ... }

...