نمایش نتایج 1 تا 13 از 13

نام تاپیک: یک سوال در مورد عملیات find در دیتاگرید

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کار زیباییست!
    میشه متدی ایجاد کرد که به دنبال کلمه ی مورد نظر در رکوردهای Grid بگرده و در صورتی که اون رو پیدا کرد، به شکل یک فرمت دلخواه نمایش بده.
    به عنوان مثال، در Firefox، اگر گزینه ی "Highlight all" رو انتخاب کنی، تمامی گزینه های مچ، با رنگ زرد، هایلایت خواهند شد.
    این متد می تونه در زمان بایند داده ها به ItemTemplate ساختار TemplateField فراخونی بشه.
    مشکلی که در اینجا وجود داره این هست که در یک رکورد ممکنه چندین کلمه ی مچ پیدا بشه و این کار رو کمی پیچیده می کنه!
    در این حالت میشه از دلیگیت MatchEvaluator استفاده کرد.

    متد ایجاد شده توسط تو شامل دو پارامتر خواهد بود. عبارت مورد جستجو و عبارتی که در آن جستجو می کنی.
    کلاس Regex نیز در متد سازنده ی خود پذیرای عبارت مورد جستجو خواهد بود.
    دلیگیت MatchEvaluator تنها در زمان استفاده از متد Replace کلاس Regex کاربرد خواهد داشت و با هر بار یافت شدن یک عبارت در رشته، فراخوانی می شود.
    توجه داشته باش که این فراخوانی به معنای اجرای هر باره ی متد نیست! متد Regex در زمان پیدا شدن یک عبارت در یک رشته، کلاسی از نوع Match را برگشت خواهد داد که شامل اطلاعات رشته ی یافت شده است؛ و این عمل جستجو تا زمان رسیدن به پایان رشته انجام می شود.

    کد توضیحات فوق:

    Protected Function Highlight(ByVal searchFor As String, ByVal SearchIn As String) As String
    Dim obj_Regex As New Regex(SearchFor)
    Return obj_Regex.Replace(SearchIn, New MatchEvaluator(myReplaceMethod))
    End Function


    همون طور که میبینی، در دلیگیت MatchEvaluator، نام متدی آورده شده است. این بدان معناست که هر گاه رشته ای یافت شد، دلیگیت MatchEvaluator، متد myReplaceMethod را فراخوانی خواهد کرد.
    این فراخوانی همراه با پاس دادن کلاس Match (که شامل اطلاعات رشته ی یافت شده است) به این متد خواهد بود.

    پیاده سازی متد myReplaceMethod

    Public Function myReplaceMethod(ByVal obj_Match As Match) As String
    Return "<span class='highlight'>" + obj_Match .Value + "</span>"
    End Function

    مقدار برگشتی متد myReplaceMethod، یک تگ span خواهد بود که عبارت یافت شده را در بر می گیرد. میبینی که به خاصیت class تگ span، مقداری نسبت داده شده که می تونی اون رو در فایل CSS تعریف کنی. در حقیقت، عمل فرمت دهی به عبارت یافت شده را تگ span انجام خواهد داد.

    نحوه ی استفاده از این تکنیک هم ساده ست!
    کافیه که در ItemTemplate ساختار TemplateField، متد Highlight رو به شکل زیر فراخونی کنی:

    <%# Highlight(myTextBoxValue, Eval("myField")) %>

    myTextBoxValue رو یک متغیر Protected یا Public در نظر بگیر که می تونی به شکل یک Property تعریفش کنی و مقدار TextBox رو در اون قرار بدی.

    موفق باشید.

  2. #2
    ممنون از راهنمایی تون . ولی من هنوز هم حرفه ای نشده ام تا کاملا متوجه توضیحات شما شوم . مرا بیشتر راهنمایی کنید.
    1)
     Protected Function Highlight(ByVal searchFor As String, ByVal SearchIn As String) As String
    Dim obj_Regex As New Regex(SearchFor)
    Return obj_Regex.Replace(SearchIn, New MatchEvaluator(myReplaceMethod))
    End Function
    حالا SearchIn را من چه باید بنویسم. من در داخل جمله ای خاص به دنبال آن نمیگردم بلکه در سطرهای دیتاگرید به دنبال آن میگردم .حالا به جای SearchIn چه باید بنویسم؟
    2)گفته بودید : میبینی که به خاصیت class تگ span، مقداری نسبت داده شده که می تونی اون رو در فایل CSS تعریف کنی. حالا چگونه در فایل CSS اینکارراانجام دهم. لطفاً مرابیشترراهنمایی کنید.

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

  1. چجوری بفهمم که متد find چیزی پیدا کرده یا نه؟
    نوشته شده توسط سیلوستر در بخش Classic ASP
    پاسخ: 13
    آخرین پست: جمعه 22 اردیبهشت 1385, 00:05 صبح
  2. find
    نوشته شده توسط meysam23 در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: دوشنبه 30 آبان 1384, 15:42 عصر
  3. رفع اشکال کد در رابطه با find
    نوشته شده توسط امیر تورانی در بخش VB.NET
    پاسخ: 2
    آخرین پست: دوشنبه 30 آبان 1384, 11:02 صبح
  4. روش استفاده از متد find در adodc.recourdset.find
    نوشته شده توسط i_naderpour در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 3
    آخرین پست: سه شنبه 24 شهریور 1383, 02:41 صبح
  5. مشکل متد Find در Ado
    نوشته شده توسط morteza_dehghan در بخش VB.NET
    پاسخ: 2
    آخرین پست: سه شنبه 08 مهر 1382, 22:48 عصر

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

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