چگونگی ايجاد پارامترها توسط کنترل های سرور داده

هنگامی که شما يک کنترل وب همانند GridView , FormView و يا DetailsView را با يک کنترل سرور داده به کار می بريد ، کنترل وب می تواند نام و مقادير پارامترهای استفاده شده را بر حسب * Bound Field های خود به کنترل سرور داده ارسال کند . سپس کنترل سرور داده نام و مقادير پارامترهای دريافتی را با هم ترکيب کرده و در مجموعه پارامترهای لازم برای عمليات های Select يا Update استفاده می کند .

Bound Field : کنترل های وب مانند GridView يا FormView اطلاعات دريافتی را به صورت جدول وار در سطرها و ستون ها نمايش می دهند . به هر يک از خانه های اين جدول ها ، يک Bound Field گفته می شود ، که نوع آن بايستی متن ( Text ) باشد . در واقع هر فيلد در رکورد ، يک Bound Field است .

ديکشنری های ارسال شده به کنترل سرور داده :

هنگامی که يک کنترل وب ، عملی مثل Select يا Update را از کنترل سرور داده درخواست می کند ، به همراه آن يک يا چند مجموعه IDictionary که شامل نام و مقادير پارامترهای ارسالی برای آن عمل داده ای است را به کنترل سرور داده ارسال می کند . اين ديکشنری ها برای هر پارامتر شامل يک جفت اطلاعات نام / مقدار ( Name / Value ) هستند ، که کنترل وب نام و مقادير آنها را از کنترل های فرزند و يا کنترل های متصل به خود استخراج می کند .
برای مثال اگر يک کنترل وب را در حالت Edit Mode قرا بدهيد ، فيلدهای اطلاعاتی آن به صورت کادر متن يا کادر کشویی در می آيند . کنترل وب اطلاعات اين کنترل ها به همراه نام فيلد آنها را پس از ويرايش توسط کاربر ، در قالب يک مجموعه به کنترل وب ارسال می کند . همچنين برای اعمالی مانند Update يا Delete ، کنترل وب ممکن است يک ديکشنری خاص را که حاوی اطلاعات اصلی رکوردها ( يعنی اطلاعات رکورد قبلا از آنکه ويرايش يا حذف شود ) می باشد ، را به کنترل وب ارسال کند .

جفتن های نام / مقدار برای پارامترها از طريق ديکشنری های زير به کنترل های سرور داده ارسال می شوند :

  • مجموعه مقادير ( Values ): اين ديکشنری برای يک عمل ورود اطلاعات جديد ( Insert ) ارسال شده و شامل جفت نام / مقدار برای يک رکورد جديد است . مجموعه نام فيلدها و مقادير آنها از کنترل های فرزند کنترل وب که در يک مجموعه InsertItemTemplate قرار داشته و يا فيلد های يک کنترل DetailsView که خاصيت InsertVisible آن بر روی مقدار True تنظيم شده است ، استخراج می شود .
  • مجموعه کليدها ( Keys ) : اين مجموعه برای عمليات های ويرايش ( Update ) و يا حذف ( Delete ) داده ، ارسال شده و شامل کليد اصلی و يا کليد فرعی برای رکوردی در جدول داده هاست که کنترل وب مورد نظر در حال ويرايش و يا حذف آن است . در واقع اين مجموعه آدرس رکوردی که قرار است حذف و يا ويرايش شود را به کنترل سرور داده ارسال می کند . اگر امکان ويرايش کليدها نيز وجود داشته باشد ، اين مجموعه شامل مقادير اصلی کليد رکورد قبل از اينکه ويرايش شود ، نيز هست . هنگامی که يک کنترل وب ،اطلاعات ارسالی از طرف يک کنترل داده را رديافت می کند ، آنها را در حافظه * ViewState خود نگهداری می کند و در زمانی که عمليات Update و يا Delete را انجام می دهد ، مجموعه کليد های دريافتی را با اطلاعات موجود در حافظه ViewState خود تلفيق می کند . اگر خاصيت ViewState کنترل وب مورد استفاده ، بر روی مقدار False تنظيم شده باشد ، اطلاعات مجموعه کليدها به تنهایی در کنترل وب استفاده شده و قبلا اطلاعاتی در حافظه ViewState آن ذخيره نشده است ، که با مجموعه کليدها تلفيق شود .
    * حافظه ViewState : اين حافظه يکی از خواص برخی از کنترل های ASP.NET است ، که اطلاعات مختلفی از جمله اطلاعات سرور ، مقادير داده ها و پارامترهای ارسالی و ... را در خود نگهداری کرده و می توان آنها را بعدا مورد استفاده قرار داد . برای فعال سازي اين حافظه بايد خاصيت EnableViewState کنترل را بر روی مقدار True تنظيم کرد .
  • مجموعه مقادير جديد ( New Values ) : اين مجموعه برای يک عمل Update ارسال می شود و شامل جفت های نام / مقدار جديد برای رکوردی است که می خواهد ويرايش شود . اين مجموعه داده های جديدی را که بايد بهع منبع داده ای ارسال شود را نگهداری می کند . نام فيلدها و مقاديرشان برای مجموعه New Values از کنترل های فرزند کنترل وب که در مجموعه EdititemTemplate و یا bound Field های يک کنترل DetailsView که خاصيت ReadOnly آن روی مقدار False تنظيم شده است ، استخراج می شود .


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1