2011-12-01 23 views
5

मैं कुछ समय से यह कोशिश कर रहा था, लेकिन मैं इसके आसपास नहीं पहुंच पा रहा हूं। पीछा कर रहा है aspx पृष्ठ प्रदर्शन के कोड:अपडेट पैनल सामग्री अपडेट नहीं कर रहा है

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    Test<br /> 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
     <asp:ListItem>1</asp:ListItem> 
     <asp:ListItem>2</asp:ListItem> 
    </asp:DropDownList> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <br /> 
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </ContentTemplate> 
    </asp:UpdatePanel> 
    </form> 
</body> 
</html> 

पीछा कर रहा है Button1 क्लिक करें घटना के लिए कोड:

Public Class WebForm1 
    Inherits System.Web.UI.Page 

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

    End Sub 

    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DropDownList1.SelectedIndexChanged 
     Label1.Text = DropDownList1.SelectedIndex 

     UpdatePanel1.Update() 

    End Sub 
End Class 

आप मुझे बता सकते कि मैं क्या बाहर याद किया।

उत्तर

2

ड्रॉप डाउन में ऑटोपॉस्टबैक को सही पर सेट करें।

सही साधन: हर बार ड्रॉप डाउन में मूल्य बदलता है, सर्वर पर एक पोस्टबैक होगा।

लेकिन टिम श्मेलर उत्तर को सुनें। यदि ड्रॉप डाउन नहीं बदलेगा, तो इसे अपडेट पैनल के बाहर रखना अच्छा विचार है और अपडेट पैनल को ड्रॉप डाउन द्वारा एसिंक्रोनस ट्रिगर किया जाना चाहिए (यदि आप अपडेट पैनल में ट्रिगर सेट नहीं करते हैं, तो प्रत्येक पोस्टबैक आपके अपडेट को अपडेट करेगा UpdatePanel)। यदि ड्रॉपडाउन की सामग्री बदलती है, तो इसे अपडेट पैनेल के अंदर रखें।

लेकिन जैसा कि मैंने कहा, मैं इसे लंबे समय तक उपयोग नहीं कर रहा हूं, इस विषय के बारे में जो कुछ भी मैं कहता हूं उसे दोबारा जांचना एक अच्छा विचार है। = पी

पीएस: माइक्रोसॉफ्ट अपडेट पैनल विकसित करना आसान है लेकिन आपकी साइट को बहुत धीमा कर दें। एस्पनेट वेबसाइसेस और jQuery के बारे में जानने का प्रयास करें।

+0

कि समस्या हल । लेकिन क्या आप कृपया मुझे बता सकते हैं कि ऑटोपॉस्टबैक क्या करता है? – surpavan

+0

बहुत बहुत धन्यवाद। ये उपयोगी है। – surpavan

1

आपको अपने स्क्रिप्टमैनर को किसी भी नियंत्रण से पहले रखने की आवश्यकता है जो इसका उपयोग करेगा।

तो इसे अपने ड्रॉपडाउन सूची नियंत्रण से ऊपर रखें। आपको चयनित खोज एक्सचेंज ईवेंट के लिए ड्रॉपडाउन सूची पर ऑटोपोस्टबैक प्रॉपर्टी को सत्य पर सेट करने की भी आवश्यकता है।

<body> 
    <form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 

    Test<br /> 
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostback="true"> 
     <asp:ListItem>1</asp:ListItem> 
     <asp:ListItem>2</asp:ListItem> 
    </asp:DropDownList> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <br /> 
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </ContentTemplate> 
    </asp:UpdatePanel> 
    </form> 
</body> 
+0

बहुत बहुत धन्यवाद। – surpavan

1

आप अपने DropDownList पर True को AutoPostback स्थापित करने के लिए भूल गए हैं। डिफ़ॉल्ट False है।

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.autopostback.aspx

और अगर आप उपयोगकर्ता को परिवर्तित करता है DropDownList Async-पोस्टबैक अपने UpdatePanel में ट्रिगर करना चाहते हैं, तो आप के लिए एक UpdatePanel AsyncPostbackTrigger निर्दिष्ट करने के लिए, क्योंकि लटकती इसके बाहर है।

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" /> 
</Triggers> 

अलावा कि आप Ed said के रूप में शुरुआत में ScriptManager डालना होगा। ASP.NET-अजाक्स पर अधिक infos के लिए यहाँ देखो:

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

+0

बहुत बहुत धन्यवाद। – surpavan

1

नीचे सही मार्कअप है, बस अपने पृष्ठ के लिए डाल दिया:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    Test<br /> 
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostback ="True"> 
     <asp:ListItem>1</asp:ListItem> 
     <asp:ListItem>2</asp:ListItem> 
    </asp:DropDownList> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="DropDownList1" 
       EventName="SelectedIndexChanged" /> 
    </Triggers> 
    </asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <br /> 
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
</ContentTemplate> 
</asp:UpdatePanel> 
</form> 

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