2017-03-03 4 views
0

Ich denke, das ist eine etwas einfache Antwort, aber ich bin nicht in der Lage zu verstehen, wie es geht.Verwenden Sie Listbox, um das genaue Objekt zu finden?

Ich habe ein Objekt (lasst es A nennen) mit einer Liste anderer Objekte (zum Beispiel Orte) Also im Erstellen einer Webapp und auf dieser Seite habe ich eine Liste von Orten (Im mit den Namen der Orte (string) als eindeutige ID). Die Frage ist, wenn ich einen Gegenstand aus dieser Liste auswähle, wie finde ich diesen Gegenstand in der Liste der Orte?

zum Beispiel:

page.aspx:

<p style="margin-left: 40px"> 
    Select place:</p> 
<p style="margin-left: 40px"> 
    <asp:ListBox ID="listplace" runat="server"></asp:ListBox> 
</p> 

page.aspx.cs:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      listplace.DataSource = A.listOfPlaces; 
      listplace.DataBind(); 
     } 
    } 
+0

Weitere Informationen werden benötigt, um dies zu beantworten; Es gibt alle möglichen Technologien, die Sie verwenden könnten, um A in Ihrer Webanwendung anzuzeigen. Auf welche Weise zeigst du A, und wie erhältst du es vom Server? –

Antwort

0

Hoffentlich kann dies helfen Sie:

using System.Collections.Generic; 
using System.Data; 
using System.Linq; 
using System.Windows.Forms; 

namespace ListBox_42581647 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      Doit(); 
     } 

     private void Doit() 
     { 
      ListBox lb = new ListBox();//create a listbox 
      lb.Items.Add(new aPlace { placename = "TheBar", placeCoolFactor = "booze" });//add something to the listbox 
      lb.Items.Add(new aPlace { placename = "TheHouse", placeCoolFactor = "bowl"});//add something to the listbox 
      lb.Items.Add(new aPlace { placename = "ThePark", placeCoolFactor = "dogs" });//add something to the listbox 

      lb.SelectedItem = lb.Items[1];//lets fake a selection 

      var theSelectedPlace = lb.SelectedItem;//the actual item selected 
      var theSelectedPlaceName = ((aPlace)lb.SelectedItem).placename;//the selected item place name 
      var theSelectedPlaceCoolFactor = ((aPlace)lb.SelectedItem).placeCoolFactor;//the selected item place cool factor 


      //now I'll create your (lets call it A) 
      List<aPlace> parallelList = new List<aPlace>();//lets call it A 
      parallelList.Add((aPlace)lb.Items[0]);//This list contains the same items your ListBox contains 
      parallelList.Add((aPlace)lb.Items[1]);//This list contains the same items your ListBox contains 
      parallelList.Add((aPlace)lb.Items[2]);//This list contains the same items your ListBox contains 

      //find the selected by matching the selected Placename 
      aPlace theChosenPlace = parallelList.Where(p => p.placename == theSelectedPlaceName).FirstOrDefault(); 
      //find the selected by matching the actual item 
      aPlace theChosenPlace2 = parallelList.Where(p => p == theSelectedPlace).FirstOrDefault(); 
     } 

    } 

    public class aPlace 
    { 
     public string placename { get; set; } 
     public string placeCoolFactor { get; set; } 
    } 


} 
0

Sie können versuchen:

string currPlace = listplace.SelectedItem.ToString(); 
string place = A.listOfPlaces.Where 
    (x => x.Contains(currPlace)).FirstOrDefault(); 
Verwandte Themen