मेरे पास एक वेब पेज है जहां उपयोगकर्ताओं को ग्राहक संपर्क जानकारी दर्ज करने की आवश्यकता है। वे 0 से अनंत संपर्कों में प्रवेश कर सकते हैं।गतिशील रूप से नियंत्रण की सूची में नियंत्रण जोड़ना
public void btnAddContact_Click(object sender, EventArgs e)
{
IList<CustomerContactProfile> customerContacts = new List<CustomerContactProfile>();
if (ViewState["CustomerContactList"] != null)
customerContacts = (List<CustomerContactProfile>)ViewState["CustomerContactList"];
CustomerContactProfile contactProfile = (CustomerContactProfile)LoadControl("~/Controls/Embedded/CustomerContactProfile.ascx");
customerContacts.Add(contactProfile);
foreach (CustomerContactProfile contact in customerContacts)
phCustomerContacts.Controls.Add(contact);
ViewState["CustomerContactList"] = customerContacts;
}
इस कोड काम नहीं करता क्योंकि ViewState के सभी भंडारण को संभाल नहीं कर सकते हैं: पीछे मैं इस जोड़ा मेरी कोड में
<ajaxToolkit:ToolkitScriptManager runat="Server" EnablePartialRendering="true" ID="ScriptManager1" />
<asp:PlaceHolder ID="phCustomerContacts" runat="server" EnableViewState="true">/asp:PlaceHolder>
<asp:LinkButton ID="btnAddContact" runat="server" OnClick="btnAddContact_Click" CssClass="LinkButton" Text="Add Contact"/>
:
मैं पृष्ठ पर यह पृष्ठ कोड बनाया वह नियंत्रण डेटा। हालांकि, मैं पहले से जोड़े गए नियंत्रणों को संग्रहीत करने के लिए एक और तरीका नहीं सोच सकता।
asp:PlaceHolder
नियंत्रण का व्यूस्टेट कुछ भी नहीं बचाता है और मुझे नियंत्रणों को सहेजने की आवश्यकता है ताकि यदि कोई उपयोगकर्ता पहले डेटा पर कुछ डेटा डालता है कि डेटा खोने पर डेटा खो नहीं जाता है और शीघ्र।
व्यूस्टेट में किसी भी विशेष कारण को होना चाहिए? आप इसके बजाय सत्र का प्रयास कर सकते हैं। – asawyer
सत्र ठीक होगा लेकिन यदि उपयोगकर्ता पृष्ठ छोड़ देता है तो क्या यह सत्र को भर नहीं पाएगा? –
सत्र पृष्ठ-आधारित राज्य के लिए बिल्कुल जगह नहीं है। एक के लिए, इसका मतलब यह है कि, जब तक आप अतिरिक्त उपाय नहीं करते हैं, तब तक उपयोगकर्ता इन दो पृष्ठों को दो अलग-अलग विंडो में नहीं देख सकता - जो कि अधिकांश वेब ऐप्स में संभव होना चाहिए। –