Bir ASP.NET DropDownList öğesindeki öğelerin, bir özellik yerine kaynaktaki bir yönteme bağlı Metin veya Değerleri var mı?ASP.NET DropDownList DataTextField yöntemine bağlanıyor mu?
cevap
Bunu yapmanın tek yolu, DropDownList'in Databinding olayını işlemek, yöntemi çağırmak ve DropDownList öğesindeki değerleri kendiniz ayarlamaktır. Bildirimli
:
<asp:DropDownList ID="ddlType" runat="server" Width="250px" AppendDataBoundItems="true" DataSourceID="dsTypeList" DataTextField="Description" DataValueField="ID">
<asp:ListItem Value="0">All Categories</asp:ListItem>
</asp:DropDownList><br />
<asp:ObjectDataSource ID="dsTypeList" runat="server" DataObjectTypeName="MyType" SelectMethod="GetList" TypeName="MyTypeManager">
</asp:ObjectDataSource>
genel listesini döndürür bir yönteme yukarıdaki bağlamalar, ama aynı zamanda bir DataReader döndüren bir yönteme yapışabilir. Ayrıca veri kaynağınızı kod olarak da oluşturabilirsiniz.
Bu benim çözümdür:
<asp:DropDownList ID="dropDownList" runat="server" DataSourceID="dataSource" DataValueField="DataValueField" DataTextField="DataTextField" />
<asp:ObjectDataSource ID="dataSource" runat="server" SelectMethod="SelectForDataSource" TypeName="CategoryDao" />
public IEnumerable<object> SelectForDataSource()
{
return _repository.Search().Select(x => new{
DataValueField = x.CategoryId,
DataTextField = x.ToString() // Here is the trick!
}).Cast<object>();
}
Bazen gibi DataTextField ("User.Address.Description") olarak navigasyon özelliklerini kullanmak gerekir, bu yüzden DropDownList türemiş basit kontrol kurmaya karar verdik. Ayrıca, yardımcı olabilecek bir ItemDataBound Olayı da uyguladım.
public class RTIDropDownList : DropDownList
{
public delegate void ItemDataBoundDelegate(ListItem item, object dataRow);
[Description("ItemDataBound Event")]
public event ItemDataBoundDelegate ItemDataBound;
protected override void PerformDataBinding(IEnumerable dataSource)
{
if (dataSource != null)
{
if (!AppendDataBoundItems)
this.Items.Clear();
IEnumerator e = dataSource.GetEnumerator();
while (e.MoveNext())
{
object row = e.Current;
var item = new ListItem(DataBinder.Eval(row, DataTextField, DataTextFormatString).ToString(), DataBinder.Eval(row, DataValueField).ToString());
this.Items.Add(item);
if (ItemDataBound != null) //
ItemDataBound(item, row);
}
}
}
}
İşte bir sınıf
Sizin aspx sayfa
<asp:DropDownList ID="DropDownListJour1" runat="server">
</asp:DropDownList>
<br />
<asp:DropDownList ID="DropDownListJour2" runat="server">
</asp:DropDownList>
Kişisel aspx.cs sayfa
protected void Page_Load(object sender, EventArgs e)
{
//Exemple with value different same as text (dropdown)
DropDownListJour1.DataSource = jour.ListSameValueText();
DropDownListJour1.DataBind();
//Exemple with value different of text (dropdown)
DropDownListJour2.DataSource = jour.ListDifferentValueText();
DropDownListJour2.DataValueField = "Key";
DropDownListJour2.DataTextField = "Value";
DropDownListJour2.DataBind();
}
Kişisel jour ASP.net bir açılan bağlama için 2 örnek var. cs sınıfı (jour.cs)
public class jour
{
public static string[] ListSameValueText()
{
string[] myarray = {"a","b","c","d","e"} ;
return myarray;
}
public static Dictionary<int, string> ListDifferentValueText()
{
var joursem2 = new Dictionary<int, string>();
joursem2.Add(1, "Lundi");
joursem2.Add(2, "Mardi");
joursem2.Add(3, "Mercredi");
joursem2.Add(4, "Jeudi");
joursem2.Add(5, "Vendredi");
return joursem2;
}
}
Çok yararlı, DataTextField & DataValueField ayarlamayı nasıl bulacağımı bulabildiğim birkaç cevaptan biri –
- 1. ASP.NET, sunucuya bağlanıyor
- 2. WinForms'ta OneWay bağlanıyor mu?
- 3. ASP.NET Otomatik Tamamlama DropDownList
- 4. PDO'da "null değil" bağlanıyor mu?
- 5. WPF olayı ViewModel'e bağlanıyor mu?
- 6. ASP.NET DropDownList OnSelectedIndexChanged olayı tetiklenmiyor
- 7. ASP.NET - AutoComplete TextBox, dropDownList Öğesi
- 8. socket.io yeniden bağlanmayı yeniden bağlanıyor mu?
- 9. SAS, odbc olmadan sql sunucusuna bağlanıyor mu?
- 10. Seri monitörde sıfırlamanın önlenmesi bağlanıyor mu?
- 11. XAML verileri global değişkene bağlanıyor mu?
- 12. WrapPanel'de UserControl'e GözlemlenebilirKonuklama öğeleri bağlanıyor mu?
- 13. Grup abonelikleri otomatik olarak yeniden bağlanıyor mu?
- 14. DropdownList in ASP.NET MVC - değer gönderilmedi
- 15. dropDownList öğeleri alfabetik olarak nasıl asp.net
- 16. DropDownList
- 17. C# dropdownlist değişiklik olayı
- 18. DropDownList seçili değer
- 19. clientSide ve ServerSide'de selectedIndexChanged dropdownlist nasıl kullanılır?
- 20. cosmos'a spagobi bağlanıyor
- 21. İlişkili dropDownList ilişkileri kullanarak?
- 22. boost.asio bağlanıyor
- 23. DropdownList DataSource
- 24. EditorTemplate DropDownList
- 25. Parse.com PFUser Twitter ve facebook hesabı bağlanıyor mu?
- 26. Tüm tarayıcılarda protokol desteklenmeden CSS veya JavaScript'e bağlanıyor mu?
- 27. ASP.NET MVC - DropDownList öğesinin ne zaman değiştirildiğini kısmi görün
- 28. DropDownList öğesindeki öğeler kayboluyor
- 29. databound dropdownlist bir öğe seç
- 30. d3.csv yöntemine d3.csv.parse yöntemine dönüştürme
Örneğinizde DataTextField ve DataValueField özellikleridir. Kaynakta bir yöntemin, metin veya değer olarak çağrılmasının sonucuna ihtiyacım vardı. – kenstone