Peut-être que vous pouvez créer un délégué et un événement pour passer une liste de valeurs de recherche? De cette façon, vous pouvez facilement ajouter un ou plusieurs contrôles d'affichage au cas où cela deviendrait nécessaire.
Notez que ceci est juste un exemple de code rapide qui devrait être optimisé/amélioré.
public class SearchControl
{
public delegate void SearchEventHandler(object sender, Dictionary<string, string> SearchValues);
public event SearchEventHandler OnSearch;
public SearchControl()
{
btnSearch.Click += new EventHandler(Search);
}
protected void Search(object sender, EventArgs e)
{
if (OnSearch != null)
{
Dictionary<string, string> searchValues = new Dictionary<string, string>();
searchValues.Add("name", "John");
searchValues.Add("age", "24");
OnSearch(this, searchValues);
}
}
}
public class DisplayControl
{
public void ShowResults(Dictionary<string, string> SearchValues)
{
// Some logic here...
}
}
public class YourWebPage
{
SearchControl searcher = new SearchControl();
DisplayControl displayer = new DisplayControl();
public YourWebPage()
{
searcher.OnSearch += new SearchControl.SearchEventHandler(searcher_OnSearch);
}
public void searcher_OnSearch(object sender, Dictionary<string, string> SearchValues)
{
displayer.ShowResults(SearchValues);
}
}
Deos la communication se produire sur le serveur ou le client? –
Heureux que cela se produise dans les deux endroits. Une fois que le contrôle de liste a reçu les critères, il effectue un appel de service. – Kye