2011-05-12 17 views
5

Bu nedenle, birçok canlandırılabilir UI öğesi içeren karmaşık bir sayfa oluşturmayı planlıyorum. Bu canlandırıcı UI öğelerinin durumunu (genişletilmiş/daraltılmış, vurgulanmış vb.) Sürdürmek için temiz bir yol bulmak istiyorum. Birkaç fikrim var ama sadece js framework'ü tanıyan birinin bunu yapıp yapmadığını bilmek istiyorum, böylece tekerleği yeniden icat etmiyorum.Geri Bildirim Verme UI öğesi durumunu nasıl koruyabilirim? (ASP.NET MVC)

DÜZENLEME

Benim fikrim o kadar uzaktır: Form yayında

1), her bir UI öğesi durumunu almak ve POST verilerini ekleyin. Özel bir CSS sınıfı (izleme için bir kayıt türü) ile eyaleti izlemek istediğim tüm kullanıcı arabirimi öğelerini işaretliyorum ve her bir desteğe sahip olmalarını polimorfik bir şekilde (her UI öğesi) almamı sağlayacak bir geri bildirime sahip olmayı düşünüyorum. genişletilmiş, seçili indeks, vurgulanmış, vb. devletin kendi anlayışı vardır.)

2) İstemciden gönderilen durum bilgisini tanıyan ve kullanıcı arabirimi öğesinin html'sini doğru durumda çıkarabilen UI öğeleri için HtmlHelper'ları oluşturun (I devlet yerine doğru ... tüm istemci tarafında durumunu geri yüklemek için çalışırken yerde şeyler haşhaş js kalmadan daha sunucu tarafında ayarlanabilir tercih?)

3) gibi karmaşık veya webcontrols veya ViewState

olarak şişirilmiş hale değil

Böyle şeyler yapan ve bunu daha iyi yapan bir çerçeve var mı, yoksa önerilen çerçevem ​​iyi bir fikir gibi geliyor mu?

+0

Eyaleti ne kadar sürdürmeyi planlıyorsunuz? Seans başına? – ataddeini

+0

İlk olarak oturum başına. Ama eğer bu hakkı inşa edersem, istediğimi ve “özel durum yönetimi mantığım” ile çalışmamı durumunda devleti bir db'de saklayabileceğime eminim. Yakında daha fazla ayrıntı ile sorumu güncelleyeceğim. – enamrik

+0

Bunu kutudan çıkaracak hiçbir şeyden haberdar değilim. Sadece Github'daki depoları hızlıca araştırdım, fakat hiçbir şey atlamamıştı (belki de Codeplex'in yanı sıra daha kapsamlı bir bakış atmaya değer). Bu senin yaklaşımın iyi bir ses gibi geldiğini söyledi. HtmlHelpers bence gitmenin yolu. – ataddeini

cevap

2


Ben bunu tüm veriler/devlet yönetimi mantığı pekiştirmek ve daha sonra bunu yani istediğiniz gibi, .toJSON() işlevini kullanarak ve sunucuya göndermeden devam edebilir çünkü KnockoutJS, size yardımcı olabilir sanırım.

Ve belki de @ Schwarty's localStorage çözümü ile entegre edebilirsiniz?

+0

KnockoutJS/localStorage combo yaklaşım fikrini beğeniyorum! –

+0

Öneriniz için teşekkür ederiz. KnockoutJS harika görünüyor. Ama bu html elemanları ile veri bağlama. Kullanıcı Arabirimi Bileşenleri için durumu korumaktan bahsediyordum (ör.içlerinde birçok html elementi olan akordeon, yüzer div). Onların durumu sadece js kütüphanesi nesnesi aracılığıyla kullanılabilir. – enamrik

+0

@enamrik Şu konulara baktınız: http://knockoutjs.com/documentation/style-binding.html ve http://knockoutjs.com/documentation/css-binding.html? Örneğin, ui durumu etkin sınıfı veya bir görünüm modeline üst ve sol stil niteliklerini bağlayabilirsiniz. –

1

Geçmişte buna benzer bir şey yaptım ve bir jQuery tanımlama bilgisi eklentisi kullandım. Bu geçerli bir seçenek olabilir, yalnızca eyaleti ne kadar süre korumanız gerektiğine ve çerezlerin etkinleştirildiği kullanıcılara güvenebileceğinize bağlıdır. Onlar (bir kullanıcının UI devlet kaydediliyor ile kapsam Tamam olduğunu varsayarak yoksa

http://plugins.jquery.com/project/Cookie

İlgili konular