هل هناك أي مساعدين للتنقل في الصفحة لـ ASP.NET MVC؟

StackOverflow https://stackoverflow.com/questions/242282

  •  04-07-2019
  •  | 
  •  

سؤال

هل هناك أي مساعدين HTML للتنقل في الصفحة.على سبيل المثال.إذا كان لدي 1000 سجل لعرضها، أريد عرض السابق 1 2 3 4 ...إلخ، الرابط التالي ضمن المجموعة التي تمت تصفيتها.

هل يعرف أحد أي شيء هناك؟

نصائح أخرى

إذا كنت تقوم بإنشاء جدول بيانات من البيانات JSON، أنا أوصى (مكتبة UI ياهو) YUI عنصر DataTable و(<لأ href = "http://developer.yahoo.com/yui/datatable/" يختلط = "noreferrer نوفولو"> http://developer.yahoo.com/yui/datatable/ ). وهو يفعل الترحيل بشكل جيد للغاية وكان لديك خيار العودة السجل كله من المقرر أن تبدأ مع وثم ترحيل من خلال ذلك عن العميل أو إرجاع مجموعة ترحيلها من الخادم.

وربما لن تتناسب مع السيناريو الخاص بك، ولكن بس كنت أذكر ذلك.

ولدي شبكة الترحيل في بلدي البيانات الديناميكي لتطبيق نموذج MVC ، ولكن شبكة وجهة المقدمة. البيانات يستخدم PagedList، الذي جاء من روب Conery (والذي بدوره أعتقد أن حصلت عليه من ScottGu).

ولقد تم التفكير في ما قد تبدو مساعد مقسم إلى صفحات الشبكة مثل لMVC ...

وماذا فعلت للترحيل حتى الآن هو إنشاء عنصر تحكم بيجر، فإنه يأخذ رابط الترحيل، معرف عنصر أتش تي أم أل التحديث، رقم الصفحة، حجم الصفحة والعدد الإجمالي.

وهذا رابط الترحيل هو النموذج تحكم / العمل حيث يعود العمل سلسلة أتش تي أم أل (الصفحة المقدمة من البيانات)

وهذا النداء بإلحاق قائمة من الروابط جافا سكريبت للصفحات. تدعو هذه الروابط وظيفة اياكس على أساس مسج أن يضرب رابط الترحيل. كل نقرة الصفحة محل المحتويات الحالية من عنصر HTML مع نتائج استدعاء اياكس. شيء من هذا القبيل:

public string Render()
{
    var buffer = new StringBuilder( 1000 );
    buffer.AppendLine( @"<ul class=""datatable_pager"">" )
        .AppendLine( "\t<li>Additional Pages:</li>" );
    int numberOfPages = TotalItemCount % PageSize == 0 ? TotalItemCount / PageSize : TotalItemCount / PageSize + 1;

    for( int i = 0; i < numberOfPages; i++ )
    {
        AppendPageLink( buffer, i );
    }

    buffer.AppendLine( "\t</ul>" );
    AppendPagingJS( buffer );

    return buffer.ToString( );
}

private void AppendPageLink( StringBuilder buffer, int i )
{
    buffer.Append( "\t\t<li><a href=\"" )
    .Append( PagingLink.Replace( "$PAGE$", i.ToString( ) ) )
    .Append( "\">" )
    .Append( i.ToString( ) )
    .Append( "</a>" )
    .AppendLine( "\t\t</li>" );
}


private void AppendPagingJS( StringBuilder buffer )
{
    buffer.AppendLine( @"
        <script type=""text/javascript"">
        function page( page, size, updateElement )
        {
            $.post( '" + PagingUrl + @"',
                {
                    pageNumber: page, 
                    pageSize: size,
                },
                function(response) 
                {
                    $(""#"" + updateElement).html(response);
                },
                ""html""
            );
        }
        </script>" );
}

وظائف جافا سكريبت لرابط الترحيل، وبالتالي فإن العمل سوف تحتاج إلى ثم تفعل شيئا مثل:

وint.TryParse (Request.Params [ "PAGENUMBER"]، من صفحة)  int.TryParse (Request.Params [ "حجم الصفحة"]، من حجم))

وواستخدام النتائج مع مكونات الوصول إلى البيانات الخاصة بك للاستيلاء على صفحة البيانات، جعله ك HTML وإعادته.

وعلى أمل أن يساعد، ويمكن توسيع عليه إذا لزم الأمر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top