का डिस्प्ले मोड निर्धारित करें मेरे पास यह समाधान कई बार है और अच्छा समाधान खोजने की कोशिश करते समय ऊब गया है। समझ में नहीं आता क्यों माइक्रोसॉफ्ट में विधि शामिल नहीं है जो प्रदर्शन पृष्ठ का आसान तरीका निर्धारित कर सकता है: "सामान्य प्रदर्शन" या "डिज़ाइन मोड" में। इसमें विभिन्न चरों की जांच करने की कई सलाहएं हैं, लेकिन यह विशिष्ट रूप से उस पृष्ठ को विभिन्न प्रकार के पृष्ठ (वेबपार्ट पेज और विकी पेज) पर डिज़ाइन में और पोस्टबैक पर नहीं कह सकती है।शेयरपॉइंट पेज
अंत में मुझे थक चुका है और मैं इस बारे में:
public static bool IsDesignTime()
{
if (SPContext.Current.IsDesignTime) return true;
if (HttpContext.Current.Request.QueryString["DisplayMode"] != null)
return true;
var page = HttpContext.Current.Handler as Page;
if(page == null) return false;
var inDesign = page.Request.Form["MSOLayout_InDesignMode"];
var dispMode = page.Request.Form["MSOSPWebPartManager_DisplayModeName"];
var wikiMode = page.Request.Form["_wikiPageMode"];
var we = page.Request.Form["ctl00$PlaceHolderMain$btnWikiEdit"];
if (inDesign == null & dispMode == null) return false; //normal display
if (we == "edit") return true; //design on wiki pages
if (page is WikiEditPage & page.IsPostBack & inDesign == "" & dispMode == "Browse" & wikiMode == "") return false; //display wiki on postback
if (inDesign == "" & dispMode == "Browse" & (wikiMode == null | wikiMode == "")) return false; //postback in webpart pages in display mode
if (inDesign == "0" & dispMode == "Browse") return false; //exiting design on webpart pages
return true;
}
किसी को भी बेहतर समाधान है?
पृष्ठ तक पहुंचने वाले प्रकाशन पृष्ठों में। अनुरोध संपत्ति अपवाद के साथ विफल हो जाती है। (HttpContext.Current.Request का उपयोग इसके बजाय किया जा सकता है। –
विकी पृष्ठों और केवल विकी पृष्ठों के लिए, आपके कोड ने मुझे समाधान दिया: पृष्ठ। Request.Form ["ctl00 $ PlaceHolderMain $ btnWikiEdit"] == "संपादित करें"। फॉर्ममोड गैर-विकी पृष्ठों का ख्याल रखता है। – CigarDoug