2011-10-17 14 views
6

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

क्या मैं इसके लिए कुछ जावास्क्रिप्ट का उपयोग कर सकता हूं या आपको लगता है कि मेरे विकल्प क्या हैं?

protected void myTextbox_TextChanged(object sender, EventArgs e) 
    { 
     ShowCheckBox(true); 
    } 

    private void ShowCheckBox(bool ckVal) 
    { 
     myCheckBox.Visible = ckVal; 
    } 
+2

आप अपने कोड-पीछे में जाँच करने के लिए चेकबॉक्स कर रहे हैं तो यह पोस्टबैक के बाद जाँच रहना चाहिए , जब तक व्यूस्टेट आदि के साथ कोई समस्या नहीं है? – Curt

+0

क्या आप शायद 'डिफ़ॉल्ट' चेक किए गए मान को कोड-पीछे में गलत पर सेट कर रहे हैं? –

+0

हां मैं करता हूं, एक और अन्य में, लेकिन मेरे पास ब्रेक पॉइंट है और यह उस लाइन से गुजरता नहीं है – user710502

उत्तर

6

क्यों इस तरह एक अद्यतन पैनल कुछ अंदर पाठ बॉक्स जोड़ नहीं:

<asp:UpdatePanel runat="server" ID="test"> 
    <ContentTemplate> 
     <asp:TextBox ID="TEXTBOX" runat="server" Visible="true" AutoPostBack="true" 
      OnTextChanged="checkUser" >Page Name</asp:TextBox> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="TEXTBOX" EventName="TextChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 
+0

हाँप मुझे बस एक अपडेट पैनल धन्यवाद था धन्यवाद – user710502

0

आपने पूरा कोड पोस्ट नहीं किया है इसलिए मैं अनुमान लगाने जा रहा हूं। टेक्स्टबॉक्स के लिए ऑटोपोस्टबैक प्रॉपर्टी को गलत पर सेट करने का प्रयास करें और देखें कि क्या यह ठीक करता है या नहीं।

यदि ऐसा नहीं होता है तो कृपया अपना कोड या एक पूर्ण नमूना कोड पोस्ट करें जो समस्या को पुन: उत्पन्न करता है।

4

अगर मैं तुम्हें थे, मैं ग्राहक के पक्ष में कुछ clode लिखते थे चेक बॉक्स को दिखाने या इसे छिपाने के लिए, writting चूसना सर्वर साइड में कोड अच्छा नहीं है और जरूरत अतिरिक्त गोल यात्रा भी आपको लगता है कि ऐसा करने के लिए एक UpdatePanel उपयोग कर सकते हैं

5

मेरा सबसे अच्छा अनुमान यह है कि आपका चेक बॉक्स प्रारंभिकरण (जो झूठ की जांच करता है) प्रत्येक पोस्टबैक पर चलता है। जैसे इस

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
     myCheckBox.Checked = false; 
} 

हालांकि करने के लिए इस

protected void Page_Load(object sender, EventArgs e) 
{ 
    myCheckBox.Checked = false; 
} 

बदलने के लिए, इससे पहले कि हम प्रभावी रूप से सहायता कर सकते हैं कुछ और कोड को देखने के लिए की आवश्यकता होगी। इस मुद्दे का हिस्सा यह हो सकता है कि नियंत्रण दृश्यमान नहीं होने पर व्यूस्टेट जारी नहीं है। यदि आप जो कुछ करना चाहते हैं उसे दिखाएं/छुपाएं, जावास्क्रिप्ट का उपयोग करें क्योंकि अन्य ने सुझाव दिया है। ,

$(document).ready(function(){ 
    $("#myTextBox").change(function() { 
    $("#myCheckBox").show(); 
    }); 
}); 
3

चेकबॉक्स अगर .Visible = false ग्राहक के लिए प्रदान की गई है:

यहाँ jQuery के साथ एक उदाहरण है। तो जब पोस्टबैक होता है तो "झूठी" का डिफ़ॉल्ट मान यह निर्धारित होता है।

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

style="display:none" और style="display:inline"