Je développe un contrôle personnalisé qui doit afficher une liste déroulante en tant que contrôle composite.ASP.Net Custom Control
La liste déroulante est remplie à partir d'un service Web de repos. Le problème auquel je suis confronté est que la liste déroulante n'a que DataTextField et DataValueField mais j'ai besoin d'un moyen de stocker plus de valeurs dans le contrôle, c'est-à-dire que j'ai besoin d'autres propriétés pour l'élément sélectionné.
Quelle est la meilleure façon de procéder?
Voici le code que j'ai jusqu'à présent:
[ValidationProperty("SelectedValue")]
public class SelectSurveyControl : Panel
{
private DropDownList ddlSurveys;
public string SelectedSurveyId
{
get
{
return SelectedValue;
}
}
public string SelectedSurveyJavascriptEmbedCode
{
get
{
return this.ddlSurveys.SelectedItem.Attributes[""];
}
}
public string SelectedValue
{
get
{
return ddlSurveys.SelectedValue;
}
set
{
if (ddlSurveys == null)
{
ddlSurveys = new DropDownList();
}
ddlSurveys.SelectedValue = value;
}
}
protected override void OnLoad(EventArgs e)
{
base.OnInit(e);
if (ddlSurveys == null)
{
ddlSurveys = new DropDownList();
}
IList<Survey> surveys = GetSurveys();
this.ddlSurveys.DataSource = surveys;
this.ddlSurveys.DataTextField = "title";
this.ddlSurveys.DataValueField = "id";
this.ddlSurveys.DataBind();
ddlSurveys.SelectedValue = this.SelectedValue;
ddlSurveys.CssClass = "umbEditorTextFieldMultiple charlimit";
ddlSurveys.Attributes.Add("SurveyId", SelectedSurveyId);
ddlSurveys.Attributes.Add("JavascriptEmbedingCode", SelectedSurveyId);
this.Controls.Add(ddlSurveys);
}
public IList<Survey> GetSurveys()
{
...
}
}
http://stackoverflow.com/questions/2001521/html-dropdown-selection-value peut vous donner un point de départ de ce problème. – DaveParsons
Comment puis-je l'obtenir en code .Net? – Burt
Avez-vous besoin de données supplémentaires pour être disponibles sur le client ou pour traitement sur le serveur? – DaveParsons