2011-05-23 11 views
5

मेरी साइट में मेरे पास मास्टर पेज में एक खोज फ़ंक्शन है (कोई डिफॉल्टबटन सेट नहीं है, फॉर्म में भी नहीं है)। एक सामग्री पृष्ठ में, मेरे पास लॉगिन है, वहां मैं डिफॉल्टबटन के साथ एक एएसपी पैनल का उपयोग करता हूं। लेकिन जब मैं लॉगिन टेक्स्टबॉक्स पर प्रवेश करता हूं तो मेरी साइट खोज ईवेंट हैंडलर पर जा रही है ... कारण क्या हो सकता है?एएसपी.नेट डिफॉल्टबटन और मास्टरपेज

कुछ कोड:

//on content page 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Write(Button1.Text); 
} 

    <asp:Panel ID="pnl1" runat="server" DefaultButton="Button1"> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
     <asp:LinkButton ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" /> 
    </asp:Panel> 

//on master page: 

protected void btnSearch_Click(object sender, EventArgs e) 
{ 
    if (!txtSearch.Text.Equals("")) 
    { 
     Response.Redirect("searchresults.aspx?search=" + txtSearch.Text); 
    } 
} 

<div id="searchbar"> 
    <asp:TextBox ID="txtSearch" CssClass="searchbar-field" runat="server"></asp:TextBox> 
    <asp:Button ID="btnSearch" CssClass="searchbar-btn" runat="server" Text="Zoek" OnClick="btnSearch_Click" /> 
</div> 

ठीक पाया समाधान: यह Button और नहीं LinkButton उपयोग करने के लिए आवश्यक है। तो यह ठीक हो जाना चाहिए था ...

+0

यदि आपको समाधान मिला, तो इसे उत्तर के रूप में जोड़ें और इसे समाधान के रूप में स्वीकार करें। –

+0

मैं अपनी पोस्ट के लिए वोट नहीं दे सकता ...: पी क्या आप मेरे लिए कर सकते हैं .. – Ozkan

+1

हालांकि आप समाधान के रूप में अपनी पोस्ट स्वीकार कर सकते हैं। –

उत्तर

2

तुम बस पृष्ठ लोड पर पृष्ठ पर डिफ़ॉल्ट बटन निर्धारित करने की आवश्यकता: (इस वीबी है)

आप पैनल के FindControl पद्धति का उपयोग करके बटन का उपयोग कर सकते ।

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 

    Me.Form.DefaultButton = pnl1.FindControl("Button1").UniqueID 

End Sub 
+0

मैंने 'पेज.फॉर्म.डिफॉल्टबटन = pnl1.FindControl ("बटन 1") का उपयोग किया। अनन्य आईडी;' लेकिन यह अभी भी खोज ईवेंट हैंडलर – Ozkan

+0

पर जाता है क्या पृष्ठ लोड पर खोज बॉक्स पर फोकस सेट किया जा रहा है? पेज लोड पर टेक्स्टबॉक्स 1 में फोकस सेट करें। –

+0

कोई मदद नहीं की, मैंने अपनी पहली पोस्ट संपादित की – Ozkan

2

समस्या पाया जाता है, मुझे लगता है कि यह Button और नहीं LinkButton उपयोग करने के लिए आवश्यक है। तो यह ठीक होना चाहिए।

0

आपके लॉगिन नियंत्रण को लोड करने वाले किसी भी पृष्ठ के मार्कअप में, आपको दो स्थानों पर HTML अपडेट करना होगा।

सबसे पहले, पृष्ठ के फ़ॉर्म टैग में, आपको डिफ़ॉल्ट बटन सेट करने की आवश्यकता है। मैं नाम के साथ कैसे आया इसके लिए नीचे देखें।

<form id="form1" runat="server" defaultbutton="ucLogin$btnSubmit"> 

(नामकरण: ucLogin भाग से पहले डॉलर साइन अपना लॉगिन नियंत्रण के आईडी की जरूरत है, के रूप में अपने पृष्ठ में और नीचे घोषित btnSubmit भाग के रूप में में नाम है बटन की आईडी की जरूरत है।

<!-- Login Control - use a panel so we can set the default button --> 
<asp:Panel runat="server" ID="loginControlPanel" DefaultButton="ucLogin$btnSubmit">       
    <uc:Login runat="server" ID="ucLogin"/>              
</asp:Panel> 

कि यह आप के लिए क्या करना चाहिए: प्रवेश नियंत्रण के एचटीएमएल)

इसके बाद, आप एक पैनल में अपनी प्रवेश नियंत्रण की घोषणा लपेट, और यह निर्धारित करने की आवश्यकता DefaultButton संपत्ति, साथ ही है।

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