2012-11-21 16 views
6

मैं asp.Net में वेबसाइट पर काम कर रहा हूं, और मैं एक अलग पृष्ठ लोड करने के लिए iframe का उपयोग कर रहा हूं। Districting.aspx नामक अलग पृष्ठ में asp button शामिल है, जो onClick() है, DoneClicked() नामक सी # में एक फ़ंक्शन कॉल करता है।सी # का उपयोग करते हुए iframe से मूल तत्व तक कैसे पहुंचे?

<asp:Button ID="LinkButtonDone" CssClass="button button-yellow" runat="server" OnClick="DoneClicked" Text="Done" /> 

कोड में पीछे, DoneClicked समारोह: यह एएसपी बटन नियंत्रण है

protected void Doneclicked(object sender, EventArgs e) 
    { 
     // Some code here 
     // Calling a function from Default page 
    } 

मैं क्या करने की जरूरत है DoneClicked समारोह, Default.aspx पेज से एक समारोह के अंत में है चाहिए बुलाया जाए।

तो मैं iframe पेज कोड में Default.aspx.cs से फ़ंक्शन तक कैसे पहुंच सकता हूं?

धन्यवाद :)

उत्तर

3

कोशिश यह नीचे

protected void Doneclicked(object sender, EventArgs e) 
    { 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptid", "window.parent.location.href='ParentPageName.aspx';", true); 
} 
+0

के पीछे के लिए मुझे

कोड में काम किया धन्यवाद !! आपने बहुत मदद की :) – Hanady

+0

@ अरिस्टोस/@ दिव्य राणा/@ हनडी: क्या आप में से कोई भी मुझे बता सकता है कि उपर्युक्त समाधान डिफ़ॉल्ट.aspx.cs फ़ाइल (अभिभावक पृष्ठ) –

+0

@ सीएम डब्ल्यू से विधि को कॉल करने के लिए कैसे काम करता है। आप वास्तव में एक विधि को कॉल नहीं करते हैं, तो आप पेज रेंडर पर कुछ जावास्क्रिप्ट कोड लिखते हैं जो इसे कॉल करता है - या जो आप उम्मीद करते हैं उसे चलाएं। – Aristos

1

आप (कम से कम एक उचित तरीके से नहीं) इसे सीधे उपयोग नहीं कर सकते।

आपको डिफ़ॉल्ट कोड को डिफ़ॉल्ट.एएसएक्स से किसी वर्ग में अमूर्त करना चाहिए जिसे दोनों पृष्ठों द्वारा उपयोग किया जा सकता है।

0

आप इसे सीधे नहीं कर सकते हैं, लेकिन आप इसे जावास्क्रिप्ट का उपयोग करके अप्रत्यक्ष कर सकते हैं।

तो आप डिफ़ॉल्ट पृष्ठ पर एक छिपा बटन है कि के रूप में DoneClicked समारोह कॉल कर सकते हैं बनाने:

<div style="display:none"> 
    <asp:Button ID="Done" runat="server" ClientIDMode="Static" OnClick="DoneClicked " /> 
</div> 

और iframe जहां Districting.aspx भरी हुई है अंदर, आप का उपयोग कर बटन पर क्लिक करके "DoneClicked" कॉल कर सकते हैं जावास्क्रिप्ट के रूप में:

<script type="text/javascript"> 
    window.parent.document.getElementById('Done').click(); 
<script> 

नोट ClientIDMode="Static" क्योंकि अन्य पेज से आप प्रदान की गई आईडी है क्या पता नहीं कर सकते हैं कि, तो यह स्थिर रखने के लिए। यदि आप स्थिर आईडी वाले डॉट नेट 4 का उपयोग नहीं करते हैं, तो आपको पृष्ठ पर प्रस्तुत आईडी भेजने के लिए जावास्क्रिप्ट का उपयोग करने की आवश्यकता है, या बटन का पता लगाने के किसी अन्य तरीके से।

window.parent. पर भी ध्यान दें जो iframe से पृष्ठ के नियंत्रण की डीओएम संरचना iframe से "देख सकता है"।

संबंधित मुद्दे