كيفية تجميد رأس GridView؟
سؤال
كما هو الحال في العنوان، هل يعرف أحد كيفية تجميد رأس GridView في ASP.NET؟
المحلول
والخيار (أ) شراء في حزمة واجهة المستخدم التي تتضمن GridView كهربائيا مع هذه الوظيفة المضمنة.
والخيار (ب) لفة بنفسك - انها ليست بسيطة. دينو اسبوزيتو ديه نهج واحد .
وتحرير: لاحظوا فقط أن المقالة على ارتباطات دينو إلى منطقة المشترك الوحيد على موقع مجلة ASPnetPro.
وهنا <لأ href = "http://weblogs.asp.net/dwahlin/archive/2007/07/31/freeze-asp-net-gridview-headers-by-creating-client-side-extenders.aspx "يختلط =" noreferrer نوفولو "> نهج آخر باستخدام موسعات.
نصائح أخرى
يمكنك القيام بذلك في CSS
تجميد الرأس:1.تحديد فئة .تجميد في ورقة الأنماط:
.Freezing
{
position:relative ;
top:expression(this.offsetParent.scrollTop);
z-index: 10;
}
2. قم بتعيين فئة cssClass لرأس Datagrid للتجميد
وحاول هذا المشروع مفتوح المصدر لASP.NET. فهي تمتد GridView لتوفير ثابت رأس الصفحة وذيلها والنداء وعرض العمود كبير ثانية. يعمل بشكل جيد في IE 6/7/8، فايرفوكس 3.0 / 3.5، كروم وسفاري.
http://johnsobrepena.blogspot.com /2009/09/extending-aspnet-gridview-for-fixed.html
لقد واجهت أيضًا مشكلة مماثلة أثناء تطوير تطبيقات الويب في Asp.Net 2.0 / 3.5.
في أحد الأيام الجميلة، صادفتني IdeaSparks ASP.NET CoolControls.يساعد على عرض رؤوس الأعمدة الثابتة والتذييل والبيجر.
لقد استخدمتها شخصيًا وأحببتها حقًا!
للتحقق من التحكم اضغط هنا:IdeaSparks ASP.NET CoolControls
أتمنى أن يساعدك هذا!
وأعتقد أن لدينا حل لهذا. يرجى الرجوع إلى أدناه شفرة جافا سكريبت
<script type="text/javascript" language="javascript">
var orgTop = 0;
$(document).scroll(function () {
var id = $("tr:.header").get(0);
var offset = $(id).offset();
var elPosition = $(id).position();
var elWidth = $(id).width();
var elHeight = $(id).height();
if (orgTop == 0) {
orgTop = elPosition.top;
}
if ($(window).scrollTop() <= orgTop) {
id.style.position = 'relative';
id.style.top = 'auto';
id.style.width = 'auto';
id.style.height = 'auto';
}
else {
id.style.position = 'absolute';
id.style.top = $(window).scrollTop() + 'px';
id.style.width = elWidth + 'px';
id.style.height = elHeight + 'px';
}
});
</script>
وحيث .header
هي الطبقة المغلق من رأس الشبكة الخاص بك.
وأضيف هذا البرنامج النصي على الصفحة واستبدال header
مع اسم الفئة المغلق كنت قد استخدمت لرأس الخاص بك.
وتعطي هذه المحاولة يجب حل المشكلة http://www.codeproject.com/KB/webforms/FreezePaneDatagrid.aspx
يمكنك محاولة نموذج التالي