पर कस्टम बिजनेस ऑब्जेक्ट के लिए गतिशील बाध्यकारी मैं Web Forms प्रोजेक्ट पर काम कर रहा हूं जो एसक्यूएल प्रश्नों के परिणाम DataTable एस में लोड करता है।रनटाइम
ये DataTable एस सामने वाले अंत तक पारित किए जाते हैं जहां हम उन्हें Repeater वेब नियंत्रण से बांधते हैं।
यह बहुत अच्छा काम करता है। हालांकि, अब हम DataTable
की बजाय अपने स्वयं के कस्टम वर्गों से जुड़ना चाहते हैं। दुर्भाग्यवश, मैंने जो सोचा था वह स्पष्ट उत्तर नहीं था (हमारी कक्षा में IDictionary<string, object>
लागू करना)।
हमें बाध्यकारी के लिए ठोस संपत्ति बनाने के बिना अतल को डेटम से बांधने की क्या ज़रूरत है? स्पष्ट रूप से DataRow को हमारे द्वारा बाध्य की जाने वाली प्रत्येक संपत्ति को ठोस रूप से लागू करने की आवश्यकता नहीं है। तो, किसी भी तरह ऐसा लगता है कि Eval डेटारो पर नाम से संपत्ति मूल्यों को देखने में सक्षम है।
यहाँ जहां डेटा स्रोत फ़ाइल
rptTags.DataSource = new[] { new Datum { {"Count", 1} }, new Datum { {"Count", 2 } };
aspx.cs में सेट है कस्टम वर्ग
public class Datum: IDictionary<string, object>
{
private Dictionary<string, object> _entries;
public Datum()
{
_entries = new Dictionary<string, object>();
}
public object this[string s]
{
get
{
return this._entries[s];
}
}
...
}
यहाँ है यहाँ है और aspx फ़ाइल में बाध्यकारी है
<asp:Repeater ID="rptTags" runat="server">
<ItemTemplate>
<%# (int)Eval("Count") >
</ItemTemplate>
</asp:Repeater>
उपर्युक्त उदाहरण का उपयोग करके हमें यह कहते हुए एक त्रुटि मिलती है कि प्रश्न में संपत्ति मौजूद नहीं है, जो सच है, लेकिन यह डी डेटारो पर मौजूद नहीं है। मैं इसे System.Data.DataRow की तरह कैसे बांध सकता हूं?
क्या आप डेटा मॉडल वर्ग और eval अभिव्यक्ति साझा कर सकते हैं, कि होगा मदद करने में आसान बनाओ। –
"यह किसी भी कोशिश करने और परीक्षण करने के लिए एक दुःस्वप्न बनाता है।" उदाहरण के लिए? –
@mark ठीक है मुझे लगता है कि मुझे यह मिल गया है ... – Aristos