2009-05-29 18 views
5

मेरे पास एक वेब एप्लिकेशन है जिसमें एक पृष्ठ है जो डेटाबेस से सामग्री लोड करता है। मैं गतिशील सामग्री में एक फॉर्म डालने में सक्षम होना चाहता हूं, लेकिन .net अंदरूनी फॉर्म को इसकी क्रिया नहीं करने देता है। क्या इस या किसी अन्य तरीके से मुझे गतिशील सामग्री पृष्ठ पर एक फॉर्म प्राप्त करने का कोई तरीका है?एएसपीनेट पृष्ठ पर फॉर्म टैग

धन्यवाद।

--EDIT--

मैं मैं कुछ स्पष्ट करने की आवश्यकता है। यह एक एएसपीएक्स पेज है जो डेटाबेस से सामग्री लोड करता है। जहां तक ​​मुझे पता है, लेबल में डीबी और छड़ी से खींचने वाला पाठ कभी भी .NET wp द्वारा संकलित या संसाधित नहीं होता है, इस प्रकार मैं इस समस्या को ठीक करने के लिए कोड का उपयोग नहीं कर सकता।

उत्तर

4

वहाँ केवल पृष्ठ (एएसपी फार्म) पर एक रूप हो सकता है ; आपको किसी भी तरह का फॉर्म इस्तेमाल करना होगा।

स्पष्टीकरण के लिए, केवल एक प्रपत्र संसाधित किया जा सकता है।

+13

बेवकूफ, बेवकूफ, वेबफॉर्म – annakata

+0

आप जोड़ सकते हैं कि आप किसी पृष्ठ पर कितने फॉर्म चाहते हैं, लेकिन केवल टैग 'runat = "server" –

1

वेबफॉर्म के साथ नहीं, नहीं। आपको Button से LinkButton से जुड़े ईवेंट हैंडलर का उपयोग करके एक, पूर्ण पृष्ठ फ़ॉर्म में काम करना होगा। सौभाग्य से, यह करने के लिए बहुत आसान है:

foo.aspx:

... 
<asp:TextBox id="txtFoo" runat="server" /> 
<asp:Button id="btnFoo" runat="server" onclick="btnFoo_Click /> 
... 

foo.aspx.cs:

... 
protected void btnFoo_Click(object sender, EventArgs e) 
{ 
    string s = txtFoo.Text; 
    // do something with s 
} 
... 
0

आपको या तो "साइड फॉर्म" सबमिट बटन बनने के लिए सर्वर साइड क्लिक इवेंट हैंडलर जोड़कर पोस्टबैक से निपटना होगा (इस प्रकार वेब फ़ॉर्म एक ही पृष्ठ पर एकाधिक सबमिट प्रकार के बुटन से संबंधित है) या अगर आप एक पूर्ण पोस्ट वापस नहीं चाहते हैं तो

0

मैंने पहले इस समस्या को पार कर लिया है। एक कामकाज जो मैंने किया है वह है मेरे कोड को रखना कि मैं एएसपी के अंदर अपनी कार्रवाई करना चाहता हूं: पैनल। पैनल के साथ आप पैनल के अंदर एक बटन पर "डिफॉल्टबटन" की विशेषता सेट कर सकते हैं, और बटन (या "एंटर" दबाकर) पर क्लिक करके उस बटन के क्लिक ईवेंट को आग लग जाएगी। जब मुझे एक मास्टर पेज होता है जिसमें एकमात्र स्वीकार्य एएसपी होता है तो फॉर्म को दबाकर "फ़ॉर्म" सबमिट करना चाहते हैं, तो मुझे यह काफी आसान लगता है: फॉर्म।

उम्मीद है कि इससे मदद मिलती है।

5

यह एक आम समस्या है, जब आप किसी तृतीय पक्ष साइट पर एक गैर-पोस्टबैक फॉर्म (उदाहरण के लिए पेपैल बटन) चाहते हैं।

समस्या तब होती है क्योंकि HTML आपको फ़ॉर्म के रूप में फॉर्म नहीं होने देता है, और अधिकांश एएसपी.NET पृष्ठों में HTML (या मास्टर पेज में) <form runat="server" /> "हाई अप" होता है।

मेरा पसंदीदा समाधान "उच्च अप" फ़ॉर्म टैग को छिपाना है, जबकि अभी भी सभी सामग्री दिखा रहा है। फिर आप शरीर में जो भी टैग चाहते हैं उसे डंप करने के लिए स्वतंत्र महसूस कर सकते हैं। यदि आप इसे गतिशील रूप से करते हैं तो आप पृष्ठ-दर-पृष्ठ आधार पर चुन सकते हैं जिसमें पृष्ठों के कस्टम रूप हैं।

मैंने इसे संभालने के लिए GhostForm.cs नामक एक कक्षा बनाई है। आप यहाँ इसके बारे में सब पढ़ सकते हैं:

http://jerschneid.blogspot.com/2007/03/hide-form-tag-but-leave-content.html

1

डिनो एस्पोसिटो MSDN पत्रिका के कवर है कि कई रूपों को पकड़ कर या ASP.Net में उप रूपों है कि सिर्फ अपने सभी सवालों के जवाब हो सकता है "अनुकरण" से एक लेख है।

http://msdn.microsoft.com/en-us/magazine/cc164151.aspx

0

कोई भी काम के आसपास hacky और बहुत बदसूरत हो जाएगा। डिज़ाइन एएसपीनेट पोस्ट करने और डेटा प्राप्त करने के लिए एक फॉर्म टैग का उपयोग करता है। यही कारण है कि वे इसे एक वेब फॉर्म आवेदन कहते हैं। एचटीएमएल नेस्टेड रूपों की अनुमति नहीं देता है। आप जो करना चाहते हैं वह आपके कोड में वेबरक्वेट का उपयोग करना है।

यदि आप पेपैल बटन की तरह कुछ करने की कोशिश कर रहे हैं तो आप बस इस तरह कुछ उपयोग कर सकते हैं।

मार्कअप:

<div id="PayPalButtonContainer" runat="server"></div> 

कोड के पीछे:

public static string GetPayPalButtonMarkup() 
    { 
     const string markup = @"https://www.paypal.com/cgi-bin/webscr 
            ?cmd=_xclick&business={0} 
            &item_name=Widget 
            &amount={1} 
            &currency_code=USD"; 
     return markup; 
    } 

    PayPalButtonContainer.InnerHtml = string.format(GetPayPalButtonMarkup,"YOUR PAYPAL USER NAME", "YOUR PRICE VALUE"); 
0

जब मैं पहली बार इस समस्या के पार आया, मैं सबसे सरल समाधान मेरे लिए पाया साधारण कॉपी के लिए गया था और मास्टर पेज पेस्ट और इसे देने के थोड़ा अलग नाम, कुछ ऐसा:

SiteNameMasterPage  'Default page with FORM tag 
SiteNameMasterPageNF 'No Form tag 

और फिर गीलेर के आधार पर मैं चाहता हूं एड एक फार्म टैग या या नहीं, बस मेरी सामग्री-पृष्ठों के शीर्ष पर masterpage लिंक बदलने के लिए, इस

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteName.master" %> 
<%@ MasterType VirtualPath="~/SiteName.master" %> 
<!-- This masterpage has the default FORM tag --> 

या

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteNameNF.master" %> 
<%@ MasterType VirtualPath="~/SiteNameNF.master" %> 
<!-- This masterpage does NOT have the default FORM tag --> 

और तरह तो सामग्री पृष्ठ, जहाँ भी मैं चाहता हूँ में मेरा फॉर्म रखें मैं <form> टैग

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