نمایش نتایج 1 تا 40 از 178

نام تاپیک: داونلود کد: اعمال متداول با GridView در ASP.NET 2.0

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8

    Thumbs up

    نسخه ی چهارم برنامه آماده شد.

    هنگامی که منبع داده ی بایند شده به GridView خالی از رکورد باشد، GridView نمایش داده نمی شود.
    برای رفع این مشکل، GridView ساختاری با نام EmptyDataTemplate معرفی کرده که قالب نمایشی GridView را در زمان خالی بودن منبع داده ی آن مشخص می کند.

    همچنین پس از حذف رکوردهای آخرین صفحه از GridView، روال Fill_Paging_DropDown از طریق روال BindGridView فراخوانی می شود.
    در این حالت، مقدار Index انتخابی DropDownList برابر با مقدار نگهدارنده ی آن در ViewState تنظیم خواهد شد.
    از آنجا که پس از حذف رکوردهای آخرین صفحه، از تعداد صفحات GridView یک واحد کاسته می شود و در ViewState همچنان مقدار صفحه ی آخر وجود دارد، در هنگام تنظیم مقدار Index، کنترل DropDownList با خطایی از نوع ArgumentOutOfRangeException مواجه خواهیم شد!
    برای رفع این مشکل، این خطا را Catch کرده و در بلوک Catch، مقدار ViewState را یک واحد کاهش می دهیم و مجددا روال BindGridView را با مقدار جدید ViewState فراخوانی می کنیم.

    همچنین در اواخر فایل aspx برنامه، دستورات زیر نوشته شده بودند:

    <script language="javascript" type="text/javascript">
    document.getElementById("gridelement").value='<%= GridView1.FooterRow.Cells(6).Controls(1).ClientID %>,<%= GridView1.FooterRow.Cells(5).Controls(0).ClientID %>,<%= GridView1.HeaderRow.Cells(6).Controls(1).Controls( 0).Controls(0).ClientID %>';
    </script

    این دستورات به منظور شناسایی عناصر GridView برای عملکرد Context Menu مورد نیاز بودند و به تعدادی از عناصر موجود در Header و Footer کنترل GridView مراجعه می کردند.
    ساختار GridView در زمان پُر بودن و خالی بودن منبع داده ی آن متفاوت هست. پس مسلما دستورات فوق در زمان خالی بودن GridView با خطا مواجه خواهند شد!
    Context Menu ی ایجاد شده تنها در زمان وجود رکورد معنا پیدا خواهد کرد. از این رو، باید به طریقی خالی بودن یا نبودن منبع داده ی GridView را بررسی کنیم و در صورت پُر بودن آن، دستورات فوق را فراخوانی کنیم.
    چون صحبت از شرط به میان آمد، این دستورات باید از فایل aspx حذف شوند و در فایل کد برنامه نوشته شوند.
    من در روال LoadComplete فرم، با بررسی تعداد رکوردهای GridView (بزرگتر از صفر)، این کار را انجام دادم:

    If (GridView1.Rows.Count > 0) Then
    gridelement.Value = GridView1.FooterRow.Cells(6).Controls(1).ClientID & "," & GridView1.FooterRow.Cells(5).Controls(0).ClientID & "," & GridView1.HeaderRow.Cells(6).Controls(1).Controls( 0).Controls(0).ClientID
    End If


    تغییرات در این نسخه شامل استفاده از ساختار EmptyDataTemplate و بر طرف ساختن 2 باگ فوق است.

    موفق باشید.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Behrouz_Rad : پنج شنبه 24 خرداد 1386 در 11:13 صبح

تاپیک های مشابه

  1. ستون gridview و استایل خاص
    نوشته شده توسط hamed_bostan در بخش ASP.NET Web Forms
    پاسخ: 14
    آخرین پست: سه شنبه 13 مهر 1389, 23:53 عصر
  2. حذف از GridView
    نوشته شده توسط maxpayn2 در بخش ASP.NET Web Forms
    پاسخ: 14
    آخرین پست: سه شنبه 29 مرداد 1387, 10:39 صبح
  3. GridView با گوشه های کمانی (Rounded Gridview Corner)
    نوشته شده توسط maryam_80 در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: دوشنبه 24 دی 1386, 04:31 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •