2012-02-17 13 views
6

İşte anlaşma. Bir C# backend ile ASP.NET WebForms kullanarak işleyen bir web uygulaması var. İşler iyi çalışıyor, ama her zaman bu şeylere yeni başlayan biri olarak gelişmeyi düşünüyorum. Şu anda, bir kullanıcının arama hiçbir sonuç ile geri geliyor başa, ben aşağıdakileri kullanan ve bunu yapmak için herhangi bir temizleyici yolu olsaydı ileride başvurmak üzere, merak ediyorum:Arama yaparken açılır pencereyi gösterme

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

, sadece ziyade sayfa hiçbir olduğunu söyleyebilirim Bir pop-up yerine sonuçlar (belki de kırmızı bir yazı tipinde göze çarpar). –

+0

Aslında, sayfamdan ayrılmaya çalışmadığı sürece bir kullanıcıyla konuştuğumda uyarıları kullanmayı tercih etmiyorum ve verilerinin kaybolduğunu doğrulamalıyım. Çoğu zaman ya güzel bir mesajla ya da hiçbir sonuç bulunmadığını söyleyen animasyonlu bir div ile bir div gösteriyorum. – Songo

+1

@JustinSteranko - Örneğin jQuery açılır penceresini kullanarak pop-up penceresini açabilirsiniz. Şahsen, can sıkıcı buluyorum ve Mike Chrstensen –

cevap

0

, bu nedenle her zaman sayfanızda bir etiket nesnesi sahip olmak kadar basit bir şey yapabilirsiniz:

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

sonra dinamik metni ayarlamak (veya koda bir özellik olarak ekleyin) sonuç bulunursa ve geri gönderme görünür olmasını etiketi ayarlayın:

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 
} 

Ama yollar oldukça geniş vardır Böyle bir şey elde edebilirsin. Numaralandırılabilir koleksiyondan .Count kullanımıyla ilgili sorunuzla ilgili olarak, bunu kesinlikle geçerli bir şekilde yaptığınız için hiçbir şey durduruyor. Soru, hangi yöntemi daha okunabilir buluyorsunuz? Hala senin için o zaman tabii ki geleneksel uyarı ile ötesinde kolay gitmek istiyorsunuz eğer o zaman ışık kutusu etkisi ile devam edin uyarıyla kullanıcıyı uyarmak için karar verdiyseniz

0

Eğer jquery ui eklerseniz

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

Şahsen ben içine alakalı javascript eklemek için bir yardımcı işlevi oluşturmayı tercih: iletişim (http://jqueryui.com/demos/dialog/), sadece güzel bir iletişim kutusu oluşturmak için bu çağırabilirsiniz sayfa, ve sadece parametreleri parametrelere iletmek böylece her zaman dağınık ayrıntıları hakkında endişelenmenize gerek yok. gibi

şey:

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);    
} 

ben kullandım örnek de jQuery ve here mevcut jGrowl kütüphanesini gerektirir. Ve IMHO mesajlar güzel. Göze batmayanlar, kullanıcının gitmesini sağlamak için bir düğmeyi tıklatması gerekmiyor ve belirli bir süre geçtikten sonra kayboluyorlar.

Ancak Mike'la aynı fikirdeyim ki, eğer herhangi bir kayıtınız yoksa, bir 'GridView'ın (EmptyDataRowStyle ve EmptyDataRowText) özelliklerinin' sorguyla eşleşen hiçbir veri 'stili mesajını görüntülemek için kullanmanız gerekir. Hiç bir GridView kullandığınızı varsayalım, bu ..

+0

Sonunda bir ızgara görünümüne, ancak önce ikincil filtre olarak açılan listeye geçilir. Bu, kullanıcıların son kullanıcılara alışkın olduğu diğer web uygulamalarımız ile aynı doğrultuda olmasını sağlamaktır. –

0

..

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

Eğer herhangi bir değişiklik yapılması gerekir eğer yalnız javascript değiştirmek gerekir çünkü .. daha doğrusu buna Script kodunun daha sayfa yüklemesinde

')" ....>

ateşle ve ihtiyacım yok etmek inşa etmek Bunu tekrar test etmek için ...

Sizin için yararlı olmasını umuyoruz ..

Not: i geleneksel asp codings unutmak mı ben Mayıs kodlama değiştirilmesini gerektiren yukarıda böylece içeriği oluşturmak için kendi dll kullanıyorum .. :) Şahsen