अंतिम समाधान (SSRS 2012 में भी काम करता है!)
निम्नलिखित स्क्रिप्ट को निम्नलिखित फ़ाइल में भेजें (SSRS सर्वर पर)
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js
function pageLoad() {
var element = document.getElementById("ctl31_ctl10");
if (element)
{
element.style.overflow = "visible";
}
}
नोट : जैसा कि azzlak ने कहा है, div का नाम हमेशा नहीं होता है ctl31_ctl10
। SQL 2012 के लिए प्रयास करें ctl32_ctl09
और 2008 R2 के लिए प्रयास करें ctl31_ctl09
। यदि यह समाधान काम नहीं करता है, तो अपने ब्राउज़र से HTML देखें कि क्या स्क्रिप्ट ने overflow:auto
संपत्ति को ठीक से बदलने के लिए काम किया है overflow:visible
।
ReportViewer नियंत्रण के लिए समाधान
इस स्टाइल लाइन में .aspx
पेज (या .css
यदि लिंक उपलब्ध हो तो) डालें
#reportViewer_ctl09 {
overflow:visible !important;
}
कारण
overflow:auto
IE के संबंध में क्रोम और सफारी अलग-अलग तरीके से प्रस्तुत करते हैं ।
SSRS HTML, QuirksMode HTML है और IE 5.5 बग पर निर्भर करता है। गैर-IE ब्राउज़र में IE quirksmode नहीं है और इसलिए HTML को सही ढंग से प्रस्तुत करना है
HTML पृष्ठ SSRS 2008 R2 रिपोर्ट द्वारा उत्पादित एक होते हैं div
जो overflow:auto
शैली, और यह एक अदृश्य रिपोर्ट में रिपोर्ट बदल जाता है।
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">
मैं क्रोम पर रिपोर्ट देख सकते हैं मैन्युअल रूप से बदलने के द्वारा overflow:auto
करने के लिए overflow:visible
Chrome की देव उपकरण का उपयोग कर उत्पादन किया वेबपेज में ( F12)।
मुझे टिम का समाधान बहुत पसंद है , यह आसान और काम कर रहा है।
लेकिन अभी भी एक समस्या है: किसी भी समय उपयोगकर्ता परिवर्तन पैरामीटर (मेरी रिपोर्ट मापदंडों का उपयोग करता है!) AJAX div को ताज़ा करता है, अतिप्रवाह: ऑटो टैग को फिर से लिखा जाता है, और कोई स्क्रिप्ट इसे नहीं बदलती है।
यह तकनीकी विवरण बताता है कि समस्या क्या है:
ऐसा इसलिए होता है क्योंकि AJAX पैनलों के साथ बनाए गए पृष्ठ में, केवल AJAX पैनल पूरे पृष्ठ को ताज़ा किए बिना, अपनी स्थिति बदलते हैं। नतीजतन, OnLoad
आपके द्वारा <body>
टैग पर लागू की गई घटनाओं को केवल एक बार निकाल दिया जाता है: पहली बार जब आपका पृष्ठ लोड होता है। उसके बाद, किसी भी AJAX पैनल को बदलने से इन घटनाओं को ट्रिगर नहीं किया जा सकेगा।
उपयोगकर्ता einarq इस समाधान का सुझाव दिया :
एक अन्य विकल्प पेजलोड में अपने फ़ंक्शन का नाम बदलना है। इस नाम के साथ किसी भी कार्य को asp.net ajax द्वारा स्वचालित रूप से कहा जाएगा यदि यह पृष्ठ पर मौजूद है, प्रत्येक आंशिक अद्यतन के बाद भी। यदि आप ऐसा करते हैं तो आप बॉडी टैग से ऑनलोड विशेषता को भी हटा सकते हैं
इसलिए बेहतर स्क्रिप्ट लिखी जो समाधान में दिखाई गई है।