2012-11-06 27 views
5

मैं वर्तमान में एक AJAX UpdatePanel के अंदर स्थित ग्रिड व्यू के लिए "colResizable" का उपयोग करने का प्रयास कर रहा हूं। पहले लोड पर, यह अच्छी तरह से काम करता है, लेकिन जब भी अपडेटपेनल अपडेट हो जाता है, तो यह बंद हो जाता है।jQuery अपडेटपैनल्स प्रारंभिक

मुझे समझ में आता है कि यह पैनेल के पूर्ण-ताज़ा होने के कारण होता है, जिसका अर्थ है कि प्रारंभिकरण द्वारा जो भी सामान जोड़ा जाता है उसे वापस नहीं जोड़ा जाता है।

मैं "add_endRequest" समाधान

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_endRequest(function() { 
    $(".GridViewStyle").colResizable({ liveDrag: true }); 
} 

की कोशिश की है लेकिन, यह बहुत जल्दी बुलाया जाता है और मेरी समस्या ठीक नहीं होती।

मैंने ".live()" विधि के बारे में पढ़ा है, लेकिन मुझे समझ में नहीं आता कि मैं इसे प्रारंभिकरण के लिए कैसे उपयोग कर सकता हूं। "माउसओवर" जैसी घटनाओं के लिए, मैं देखता हूं कि इसका उपयोग कैसे किया जाता है और यह बहुत आसान है ... हालांकि, inits के लिए, मुझे यह नहीं मिलता है।

मेरे वर्तमान initilization लाइन है:

$(document).ready(function() { 
    $(".GridViewStyle").colResizable({ liveDrag: true }); 
}); 

"माउसओवर" उदाहरण के बाद, लेकिन मैं, जो करने के लिए इस घटना के लिए हुक-अप को समझ नहीं सकता प्रलेखन "लोड की तरह कुछ की सूची नहीं है के रूप में "। अगर ऐसा हुआ, मैं कुछ इस तरह ...

$(".GridViewStyle").live("load", function() { $(".GridViewStyle").colResizable({ liveDrag: true }); }); 

मैं चारों ओर खोज की है इस्तेमाल किया होता, लेकिन कुछ है कि सूट मेरी जरूरतों नहीं मिली है। मैं jQuery के लिए बहुत नया हूं इसलिए मैं सही शब्दावली/अवधारणाओं का उपयोग नहीं कर रहा हूं।

उत्तर

0

endRequest के बजाय PageRequestManager की स्थिति pageLoaded का उपयोग कर सकते हैं। इस घटना दस्तावेज को देखें:

पृष्ठ पर सभी सामग्री के बाद एक सिंक्रोनस या असीमित पोस्टबैक के परिणामस्वरूप ताज़ा किया जाता है।

इसके अलावा, इस घटना में हैंडलर आप केवल रंगीन प्लगइन लागू कर सकते हैं यदि अपडेटपैनल जहां ग्रिड व्यू नियंत्रण बनाया या अपडेट किया गया हो। इससे आप प्रत्येक async पोस्टबैक कि

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(initializeResizeable); 

function initializeResizeable(sender, args) { 
    var context = $(args.get_panelsCreated()).add(args.get_panelsUpdated()); 
    $(".GridViewStyle", context).colResizable({ liveDrag: true }); 
} 

इसके अलावा कुछ अन्य UpdatePanel में नियंत्रण द्वारा उठाया जा सकता है पर अनावश्यक प्लगइन आरंभीकरण कॉल, इस स्क्रिप्ट के साथ आप document.ready हैंडलर से प्लगइन आरंभीकरण को हटा सकते हैं के रूप में इस स्क्रिप्ट हो जाएगा से बचने के लिए अनुमति देता है पहले पृष्ठ लोड पर और साथ ही प्रत्येक async पोस्टबैक पर निष्पादित

0

.live() इसलिए हटा दिया गया है बजाय jQuery के .on() विधि का उपयोग कर प्रयास करें:

$(document).on("change", $('.GridViewStyle'), function() { 
    $(this).colResizable({ liveDrag: true }); 
}); 

इसके अलावा, आप अपने प्रारंभकर्ता में postbackSafe: true स्थापित करने के लिए पोस्टबैक के दौरान स्तंभ चौड़ाई परिवर्तन रखने के लिए चाहते हो सकता है।