DetailsView Fields Defining and Record Operations

Fields Defining

जैसाकि पिछले Example Code में हम देख सकते हैं कि प्रत्‍येक Field को Render करने का काम BoundField Control द्वारा हुआ है।

DetailsView Control इन Fields को Generate करने का काम Reflection के माध्‍यम से करता है। इसका मतलब ये है कि ये Data Object को Examine करता है और Row के प्रत्‍येक Field के लिए अथवा किसी Custom Object की प्रत्‍येक Property के लिए एक Separate Field Create करता है, ठीक उसी तरह से जिस तरह से GridView Control के लिए होता है।

हालांकि हम इस Automatic Field Generation को AutoGenerateRows Property को False Set करके Disable भी कर सकते हैं। लेकिन उस स्थिति में प्रत्‍येक Field Object को Declare करने की जिम्मेदारी हमारी हो जाती है।

DetailsView Control में भी Fields को Display करने के लिए हम उन्हीं Field Objects को Use करते हैं, जिन्हें GridView Control के Fields को Display करने के लिए Use किया था। यानी हम इस Control के Fields Create करने के लिए भी BoundField, ButtonField, CheckBoxField, CommandField, HyperLinkField, ImageField TemplateField को Use कर सकते हैं और पिछले Example के Code में हम देख भी सकते हैं कि BoundField Control को Exactly उसी तरह से Use किया गया है, जिस तरह से GridView Control के लिए Use किया गया था।

BoundField Element का प्रयोग करके हम Header Text, Formatting String, Editing Behavior आदि को Properties को Set कर सकते हैं। साथ ही हम ShowHeader Property भी Use कर सकते हैं, जो जब false Value से Set होता है, तो DetailsView Control को Header Text को Set करने के लिए Row पर ही छोड देता है और Field दोनों ही Columns के Data को ले लेता है।

DetailsView Control का Field Model ही नहीं बल्कि Styling Event Model भी GridView Control के समान ही होता है। यानी हम एक DetailsView Control को ठीक उसी तरह से Style कर सकते हैं, जिस तरह से GridView Control को करते हैं।

Record Operations

GridView Control की तरह ही DetailsView Control भी Delete, InsertEdit Operations को Support करता है। लेकिन हम GridView Control की तरह इस Control में Edit Controls के साथ CommandField को Add नहीं करते। बल्कि हमें केवल AutoGenerateDeleteButton, AutoGenerateEditButton AutoGenerateInsertButton Properties को ही True Set करना होता है। फलस्वरूप इन Editing Tasks के लिए CommandField Automatically DetailsView Control के Bottom में विभिन्न Links के साथ Add हो जाता है। जैसे:

DetailsView Fields Defining and Record Operations - ASP.NET in Hindi

जब हम “Delete” Hyperlink पर Click करते हैं, तो यदि किसी प्रकार का Referential Integrity Issue न हो, तो बिना किसी परेशानी के Current Record Delete हो जाता है। लेकिन जब हम “Edit” या “New” Hyperlink पर Click करते हैं, हमारा Webpage निम्न चित्रानुसार Edit Mode या Insert Mode में Display होने लगता है:

DetailsView Fields Defining and Record Operations - ASP.NET in Hindi

तकनीकी रूप से DetailsView Control के कुल तीन Modes होते हैं, जिन्हें DetailsViewMode Enumeration द्वारा Represent किया जाता है। इन तीनों Modes को ReadOnly, EditInsert के नाम से जाना जाता है। जबकि किसी भी समय Current Mode का पता लगाने के लिए हम DetailsView Control की CurrentMode Property को Use कर सकते हैं तथा Mode को Change करने के लिए ChangeMode() Method को Use कर सकते हैं।

साथ ही DefaultMode Property को Use करके हम तीनों में से किसी एक को Default Mode के रूप में भी Set कर सकते हैं, ताकि Webpage Load होते ही हमारा Page Edit या Insert Mode में ही Load हो।

Edit Mode में DetailsView Control में भी सभी Fields के लिए Standard TextBox Controls ही Use होते हैं, ठीक उसी तरह से जिस तरह से GridView Control के Edit Mode में होते हैं। इसलिए और अधिक Flexibility प्राप्त करने के लिए हम DetailsView के स्थान पर FormView Control को Use कर सकते हैं।

जब हम DetailsView में किसी Control को Modify करने के लिए “Edit” Hyperlink पर Click करके उसे Edit Mode में लाते हैं, और फिर Pager Buttons का प्रयोग करके किसी अन्‍य Record पर Navigate करते हैं, तो नए Page पर पहुंचने के बावजूद वह Record Edit Mode में ही रहता है।

इसलिए यदि DetailsView Control का ये Behavior वांछित न हो, तो उस स्थिति में हम DetailsView Control के PageIndexChanged Event के लिए Handler Create कर सकते हैं और ChangeMode() Method को Call करके उस Record को फिर से Programmatically Read-Only Mode में Place कर सकते हैं।

Advance ASP.NET WebForms with C# in Hindi - BccFalna.com: TechTalks in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।

Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF

BUY NOW GET DEMO REVIEWS