मेरे पास कोई एएसपी.NET नियंत्रण है। मैं HTML स्ट्रिंग को कैसे करना चाहता हूं मुझे नियंत्रण की HTML स्ट्रिंग मिलती है?एएसपी.नेट एचटीएमएल पर नियंत्रण कैसे प्रस्तुत करें?
उत्तर
यह काम प्रतीत होता है। यदि नियंत्रण है
public void GetHtmlFromMySweetControl(HttpContext context)
{
HttpRequest httpRequest = context.Request;
HttpResponse httpResponse = context.Response;
string foo = httpRequest["foo"];
Page pageHolder = new Page();
string path = "~/usercontrols/MySweetControl.ascx";
MySweetControl ctrl = (MySweetControl)pageHolder.LoadControl(path);
ctrl.BindProducts(foo);
pageHolder.Controls.Add(ctrl);
StringWriter sw = new StringWriter();
context.Server.Execute(pageHolder, sw, false);
httpResponse.Write(sw.ToString());
}
अपने नियंत्रण एक वेब उपयोगकर्ता नियंत्रण है, यह कैसे आप HTML इसे किसी अन्य पृष्ठ या हैंडलर से उत्सर्जन करता है करने के लिए मिल सकता है पृष्ठ का हिस्सा नहीं है। a7drew
का उत्तर अनावश्यक जटिल लगता है - Context
या Server.Execute
में कोई आवश्यकता नहीं है।
private string RenderControl()
{
var sb = new System.Text.StringBuilder();
using (var stWriter = new System.IO.StringWriter(sb))
using (var htmlWriter = new HtmlTextWriter(stWriter))
{
var p = new Page();
var ctrl = (YourControl)p.LoadControl("~/controls/building blocks/YourControl.ascx");
ctrl.Visible = true;
// do your own init logic if needed
p.Controls.Add(ctrl);
ctrl.RenderControl(htmlWriter);
return sb.ToString();
}
}
जब मैं इसे आज़माता हूं, तो HTML द्वारा प्रदान किया गया HTML सामान्य रूप से पृष्ठ पर दिखाई देने से अलग होता है। उदाहरण के लिए, एक एएसपी: समूहिंग टेक्स्ट विशेषता के साथ पैनल। GroupingText विशेषता का मान अब फ़ील्ड और किंवदंती के रूप में प्रस्तुत किया जाता है। यह वांछनीय नहीं है ... इसकी तरह उपयोगकर्ता नियंत्रण कुछ अलग-अलग प्रकार के मोड के तहत प्रस्तुत किया जा रहा है .... पूरी तरह से अलग HTML ... :( – ClearCloud8
अच्छा! मुझे यह भी पता नहीं था कि यह संभव था! यह बहुत ही कुशल तरीकों की अनुमति देता है कैशिंग सामग्री! बहुत बहुत धन्यवाद! – Tillito
David Basarab
द्वारा
स्वीकृत जवाब काम नहीं करेगा:
public string RenderControlToHtml(Control ControlToRender)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter stWriter = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stWriter);
ControlToRender.RenderControl(htmlWriter);
return sb.ToString();
}
धन्यवाद, यह काम करता है! वैसे, मेरे परीक्षण में, 'ctrl.Visible = true;' लाइन की आवश्यकता नहीं है। –
- 1. एएसपी.नेट लेबल नियंत्रण - एचटीएमएल
- 2. एचटीएमएल 5 कैनवास पर ऑडियो वेवफ़ॉर्म कैसे प्रस्तुत करें?
- 3. पीडीएफ प्रारूप में एएसपी.नेट एमवीसी व्यू कैसे प्रस्तुत करें
- 4. jQuery.tmpl() में एचटीएमएल प्रस्तुत करने के रूप में एचटीएमएल कैसे प्रस्तुत करें?
- 5. स्विंग एप्लिकेशन में एचटीएमएल प्रस्तुत करें
- 6. मैं WPF में TabItem पर नियंत्रण कैसे प्रस्तुत करूं?
- 7. एचटीएमएल 5 - सरल विद्युत सर्किट प्रस्तुत करें
- 8. एएसपी.नेट एमवीसी: एचटीएमएल का उपयोग करें। पार्टिकल या एचटीएमएल। एक्शन?
- 9. Asp.Net MVC लूप में सादे HTML लिंक कैसे प्रस्तुत करें?
- 10. एएसपी.नेट सूची दृश्य - प्रस्तुत करें थैड/टीबीओडीवाई टैग
- 11. एचटीएमएल। एएसपी.नेट एमवीसी
- 12. jQuery tmpl: मैं एचटीएमएल कैसे प्रस्तुत करूं?
- 13. ब्लैकबेरी पर पीडीएफ प्रस्तुत करें?
- 14. एएसपी.नेट सी # लिस्टबॉक्स सर्वर नियंत्रण
- 15. एएसपी.नेट: नियंत्रण क्लाइंट-साइड
- 16. 10,000 + जल्दी से प्रस्तुत करने के लिए एचटीएमएल पर रिकॉर्ड
- 17. एएसपी.नेट एमवीसी: एचटीएमएल रेंडर करें। वैलिडेशनसमरी केवल अगर
- 18. क्या डब्लूपीएफ वेबब्रोसर नियंत्रण के शीर्ष पर डब्ल्यूपीएफ नियंत्रण प्रस्तुत करने का कोई तरीका है?
- 19. एएसपी.नेट: स्ट्रिंग (एचटीएमएल) में डेटाटेबल प्रस्तुत करने का सबसे छोटा तरीका?
- 20. एएसपी.नेट एमवीसी उपयोगकर्ता नियंत्रण देखें - आईडी कैसे सेट करें?
- 21. एएसपी.नेट एमवीसी एक एचटीएमएल हेल्पर
- 22. ड्रॉपडाउनलिस्ट नियंत्रण कैसे बनाएं बोल्ड एएसपी.नेट
- 23. एएसपी.नेट चार्टिंग नियंत्रण पारदर्शिता
- 24. एएसपी.नेट पेजिंग नियंत्रण
- 25. एएसपी.नेट एचटीएमएल टेबल
- 26. एएसपी.नेट प्रीइनेट घटना में नियंत्रण कैसे प्राप्त करें?
- 27. मैं एएसपी.नेट एमवीसी में सत्यापन संदेश में एचटीएमएल कैसे प्रस्तुत कर सकता हूं?
- 28. एएसपी.नेट मेनू नियंत्रण द्वारा जावास्क्रिप्ट पीढ़ी को अक्षम करें
- 29. एचटीएमएल को एक छवि के रूप में प्रस्तुत करें
- 30. एएसपी.नेट: उपयोगकर्ता नियंत्रण से पृष्ठ पर पास मूल्य?
स्ट्रिंगवाइटर और HtmlTextWriter दोनों लागू करने योग्य IDISposable, ताकि आप उन्हें एक() {} ब्लॉक में लपेटना चाहें। साथ ही, यह 'नियंत्रण' का विस्तार तरीका बनाने के लिए उपयोगी हो सकता है, ताकि आप इसे किसी इंस्टेंस सदस्य से कॉल कर सकें। –
@ डेविड, आप एटीएक्स फ़ाइल को एचटीएमएल में प्रस्तुत करने के साथ कैसे समाप्त हुए? मैंने उपर्युक्त विधि की कोशिश की, लेकिन हमेशा "ऑब्जेक्ट रेफरेंस ऑब्जेक्ट के इंस्टेंस पर सेट नहीं है।" कह रहा है कि मैं जिस उपयोगकर्ता नियंत्रण का संदर्भ दे रहा हूं वह एक उदाहरण नहीं है। विंडोज़ फॉर्म या कंसोल एप्लिकेशन में इसका इस्तेमाल कैसे करना चाहिए? – Princa
डिफ़ॉल्ट स्ट्रिंगवाइटर() कन्स्ट्रक्टर एक नया स्ट्रिंग बिल्डर बनाता है, इसलिए पहले दो लाइनों को केवल System.IO.StringWriter stWriter = new System.IO.StringWriter() के साथ प्रतिस्थापित किया जा सकता है; – Spongeboy