क्या कोई यह जानता है कि फ़ील्ड का क्रम चुनने के लिए गतिशील डेटा में (बेशक, प्रत्येक तालिका के टेम्पलेट को अनुकूलित किए बिना)?गतिशील डेटा में फ़ील्ड का ऑर्डर?
धन्यवाद!
क्या कोई यह जानता है कि फ़ील्ड का क्रम चुनने के लिए गतिशील डेटा में (बेशक, प्रत्येक तालिका के टेम्पलेट को अनुकूलित किए बिना)?गतिशील डेटा में फ़ील्ड का ऑर्डर?
धन्यवाद!
आप अपने LINQ से SQL फ़ाइल में सार्वजनिक गुणों के क्रम को संशोधित करके ऐसा कर सकते हैं।
उदाहरण के लिए, मैं Northwind.designer.cs में गया जो कि मेरी स्वत: जेनरेट की गई LINQ SQL फ़ाइल में थी और सार्वजनिक आंशिक श्रेणी श्रेणी में सार्वजनिक संपत्ति श्रेणी नाम के ऊपर उत्पाद नाम की सार्वजनिक संपत्ति को स्थानांतरित कर दिया। फिर मैंने पुनः संकलित किया और डिफ़ॉल्ट टेम्पलेट ने मेरे नए ऑर्डर में कॉलम प्रदर्शित किए।
बेशक, इसका मतलब है कि आपका संपादन स्वत: जेनरेट कोड और यदि आप इसे पुन: उत्पन्न करते हैं, तो आपके परिवर्तन गुम हो जाते हैं, इसलिए यह तकनीक खतरे के बिना नहीं है।
आपको डायनामिकडेटा फ़ोल्डर में एक कस्टम पेज बनाना है।
ये कदम उठाएँ "डायनामिकडेटा \ कस्टमपृष्ठ \" तालिका नाम के साथ फ़ोल्डर] "फ़ोल्डर के अंतर्गत।
यहाँ ScottHa से एक स्क्रीनकास्ट है: http://www.asp.net/learn/3.5-SP1/video-293.aspx
प्रति this धागा के रूप में - आप गतिशील डेटा वायदा dll में ColumnOrderAttribute उपयोग कर सकते हैं। आप कोडेप्लेक्स से वायदा पकड़ सकते हैं।
GridView ColumnsGenerator संपत्ति है, IAutoFieldGenerator इंटरफेस है, जिसमें आप अपने कस्टम नियमों के आधार पर क्षेत्रों आदेश सेट कर सकते हैं की GenerateFields विधि को लागू करने से इसका इस्तेमाल करते हैं (विशेषताओं, मेटा जानकारी, ...)
protected override void OnInit(EventArgs e)
{
...
this.gvItemsList.ColumnsGenerator = new EntityFieldsGenerator(CurrentDataSource.CurrentTableMetadata);
...
}
public class EntityFieldsGenerator : IAutoFieldGenerator {
...
public ICollection GenerateFields(Control control)
{
// based on entity meta info
var fields = from item in this.entityMetadata.Columns
where this.IncludeColumn(item.Value)
orderby item.Value.Order
select new DynamicField
{
DataField = item.Value.Column.Name,
HeaderText = item.Value.DisplayName,
DataFormatString = item.Value.DataFormatString,
UIHint = GetColumnUIHint(item.Value)
};
return fields.ToList();
} }
का उपयोग कर से बचने के लिए इस प्रकार गतिशील डेटा वायदा DLL, आप अपने खुद के ColumnOrder विशेषता रोल कर सकते हैं:
[AttributeUsage(AttributeTargets.Property)]
public class ColumnOrderAttribute : Attribute
{
public int Order { get; private set; }
public ColumnOrderAttribute() { Order = int.MaxValue; }
public ColumnOrderAttribute(int order) { Order = order; }
public static ColumnOrderAttribute Default = new ColumnOrderAttribute();
}
और अपने वर्ग कि IAutoFieldGenerator लागू करता है में तो, आप
हैpublic static class ExtensionMethods
{
public static int GetOrder (this MetaColumn column)
{
var orderAttribute = column.Attributes.OfType<ColumnOrderAttribute>().DefaultIfEmpty(ColumnOrderAttribute.Default).Single();
return orderAttribute.Order;
}
}
public ICollection GenerateFields(Control control)
{
var fields = new List<DynamicField>();
var columns = _table.Columns.OrderBy(column => column.GetOrder());
foreach (var column in columns)
{
if (!column.Scaffold) { continue; }
fields.Add(new DynamicField {DataField = column.Name});
}
}
और अंत में अपने उपयोग की तरह
[MetadataType(typeof(CustomerMetadata))]
public partial class Customer {}
public class CustomerMetadata
{
[ColumnOrder(1)]
public object FirstName {get;set;}
[ColumnOrder(2)]
public object LastName {get;set;}
}
.NET 4.0 में विचार करेंगे, 4 का उपयोग।गतिशील डेटा dll 0 रिहाई, तो आप ऐसा जैसे डेटा एनोटेशन सेट कर सकते हैं:
[Display(Name = " Mission Statement", Order = 30)]
public object MissionStatement { get; set; }
[Display(Name = "Last Mod", Order = 40)]
public object DateModified { get; private set; }
मैं एक पुराने सवाल का जवाब रहा हूँ क्योंकि मुझे लगता है कि संभव समाधान ढांचे के नए संस्करण में बदल दिया है।
ऐसा लगता है कि डिस्प्ले (ऑर्डर) अब किसी भी विशेष कार्यवाही के बिना (सीधे वेब डेवलपर 2010 पर .NET 4.0) के रूप में काम करता है।
उदाहरण:
[Display(Order = 50)]
एक महत्वपूर्ण बात यह सही ऑब्जेक्ट नाम की जाँच करने के foreignkey मैप करने के लिए है:
public object Operatore { get; set; }
:
एक परियोजना में
एक क्षेत्र के रूप इकाई कक्षा में अनुवाद OperatoreID
विदेशीकी की स्रोत तालिका का संचालन किया जा रहा है; एक ही टेबल पर दूसरे संदर्भ के लिए इसे कुछ और कुछ मिल जाएगा।
बस मुझे जो चाहिए .. धन्यवाद! – ArjanP