2012-02-17 14 views
6

यह सौदा है। एक सी # बैकएंड के साथ एएसपी.नेट वेबफॉर्म का उपयोग कर एक कार्यशील वेब ऐप करें। बात ठीक काम करती है, लेकिन मैं हमेशा इस सामान में शुरुआत के रूप में सुधार करने की तलाश में हूं। अभी, किसी उपयोगकर्ता की खोज कोई परिणाम नहीं के साथ वापस आ रहा से निपटने के लिए, मैं निम्नलिखित का उपयोग, और अगर कोई क्लीनर तरीका यह करने के लिए था सोच रहा था, भविष्य में संदर्भ के लिए:कोई पॉपअप फेंकता है जब खोज कोई परिणाम नहीं देती

DataClass data = new DataClass(); 
var searchresults = data.GetData(searchBox.Text); 
int datanumber = searchresults.Count(); 
if (datanumber == 0) 
{ 
    ClientScript.RegisterStartupScript(this.GetType(), "alert", "javascript:alert('There were no records found to match your search');", true); 
} 
else 
{ 
    DropDownList1.Visible = true; 
    DropDownList1.Items.Clear(); 
    DropDownList1.DataSource = searchresults; 
    DropDownList1.DataBind(); 
} 
+9

व्यक्तिगत रूप से, मैं सिर्फ बल्कि पेज कहेंगे वहाँ थे कि कोई भी परिणाम (शायद एक लाल फ़ॉन्ट में तो यह खड़ा है), पॉपअप की बजाय। –

+0

वास्तव में जब मैं किसी उपयोगकर्ता से बात नहीं कर रहा हूं तब तक मैं अलर्ट का उपयोग करना पसंद नहीं करता जब तक कि वह मेरा पृष्ठ छोड़ने की कोशिश नहीं करता है और मुझे यह पुष्टि करनी होगी कि उसका डेटा खो जाएगा। अधिकांश समय मैं या तो एक अच्छा संदेश या एनिमेटेड div के साथ एक div दिखाता हूं जो कहता है कि कोई परिणाम नहीं मिला। – Songo

+1

@JustinSteranko - उदाहरण के लिए, आप एक jquery पॉपअप का उपयोग करके पॉपअप को सुंदर बना सकते हैं। निजी तौर पर, मुझे पॉपअप परेशान लगता है और माइक क्रिस्टेनसेन –

उत्तर

0

मैं पॉपअप का उपयोग नहीं कर से सहमत हैं, ताकि आप हमेशा अपने पृष्ठ पर एक लेबल वस्तु होने के रूप में के रूप में सरल कुछ कर सकते हैं:

<asp:Label runat="server" id="lblResultMsg" ForeColor="Red" Visible="False" /> 

और फिर टेक्स्ट डायनामिक सेट (या कोड के लिए एक संपत्ति के रूप में जोड़ना) और लेबल पोस्टबैक पर दिखाई करने के लिए सेट करता है, तो कोई परिणाम नहीं पाए जाते हैं:

if (datanumber == 0) 
{ 
    lblResultMsg.Text = "There were no records found to match your search."; 
    lblResultMsg.Visible = true; 
} 
else 
{ 
    lblResultMsg.Text = ""; 
    lblResultMsg.Visible = false; 

    // do your data binding 
} 

लेकिन काफी तरीके की एक विशाल संख्या देखते हैं आप इस तरह कुछ हासिल कर सकते हैं। गणनात्मक संग्रह से गणना का उपयोग करने के बारे में आपके प्रश्न के बारे में - ऐसा करने से आपको कुछ भी रोक नहीं है क्योंकि यह पूरी तरह मान्य है। सवाल यह है कि आपको कौन सी विधि अधिक पठनीय मिलती है?

0

अगर आप jQuery ui शामिल संवाद (http://jqueryui.com/demos/dialog/), तो आप बस एक अच्छा संवाद बॉक्स बनाने के लिए इस कॉल कर सकते हैं:

$('<div>message</div>').dialog({autoOpen:true,title:'Error'}); 
0

व्यक्तिगत तौर पर मैं में प्रासंगिक जावास्क्रिप्ट डालने के लिए एक सहायक समारोह बनाने के लिए पसंद करते हैं पेज, और केवल फ़ंक्शन पर पैरामीटर पास करें ताकि मुझे हर बार गन्दा विवरणों के बारे में चिंता करने की आवश्यकता न हो।

कुछ की तरह:

public static void GrowlMessage(System.Web.UI.Control pageControl, string header = "", string message = "", bool sticky = false, string position = "top-right", string theme = "", bool closer = true, int life = 8) 
{ 
    string _js = "$.jGrowl('" + HttpContext.Current.Server.HtmlEncode(message) + "', { header:'" + header + "', sticky:" + sticky.ToString().ToLower() + ", position: '" + position + "', theme: '" + theme + "', closer: " + closer.ToString().ToLower() + ", life:" + life * 1000 + "});"; 
    ScriptManager.RegisterStartupScript(pageControl, pageControl.GetType(),"Growl",_js, true);    
} 

नमूना मैं का इस्तेमाल किया है भी jQuery और jGrowl पुस्तकालय उपलब्ध here की आवश्यकता है। और आईएमएचओ संदेश सुंदर हैं। वे अविभाज्य हैं, उपयोगकर्ता को उन्हें दूर जाने के लिए बटन पर क्लिक करने की आवश्यकता नहीं है, और वे आपके निर्दिष्ट समय के बाद दूर हो जाते हैं।

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

+0

यह अंततः एक ग्रिडव्यू में पारित हो जाता है, लेकिन पहले एक माध्यमिक फ़िल्टर के रूप में एक ड्रॉपडाउन सूची में। यह हमारे कुछ अन्य वेब अनुप्रयोगों के अनुरूप है जो उपयोगकर्ताओं के आदी हैं –

0

आप अलर्ट के द्वारा उपयोगकर्ता को सचेत करने तो कृपया प्रकाश बॉक्स प्रभाव के साथ आगे बढ़ो निर्णय लिया है ..

http://www.designyourway.net/blog/resources/30-efficient-jquery-lightbox-plugins/

अगर आप अभी भी आगे परंपरागत चेतावनी के साथ तो जाहिर है आप के लिए अपनी आसान जाना चाहते हैं कर रहे हैं बल्कि यह करने के लिए स्क्रिप्ट संलग्न की तुलना में पृष्ठ लोड पर इसे आग ..

') "....>

क्योंकि अगर आप किसी भी परिवर्तन की आवश्यकता होती है तो आप सिर्फ अकेले जावास्क्रिप्ट को बदलने की जरूरत है और आप की आवश्यकता नहीं है बनाने के लिए इसे फिर से जांचने के लिए परियोजना ...

आशा है कि यह आपके लिए उपयोगी होगा ..

नोट: मैं अपने खुद के DLLs उपयोग कर रहा हूँ सामग्री प्रस्तुत करने के लिए इतना ऊपर कोडिंग मई परिवर्तन की आवश्यकता है क्योंकि मैं पारंपरिक एएसपी codings भूल गए .. :)

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