Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Weblog @ Rebex.cz :: Honza Šotola

nepravidelné poznámky .NET vývojáře

Jak přidat do asp:DropDownList položku, která není v datasource

Možná zase objevuji Ameriku, ale následující feature jsem neznal.

Jistě jste v různých projektech řešili následující problém:

  • mám DropDownList a používám ho např. pro filtrování
  • jeho položky plním z nějakého číselníku, ale navíc bych chtěl mít na prvním místě nějakou neutrální hodnotu, která znamená "hledej vše"

Pokud DropDownList bindujete "postatu", tedy vytvořením data source objektu v code-behind, jeho dosazení do property DataSource a následné volání metody DataBind(), mohli jste položku ještě před nabindováním přidat do původního datasource.

Pokud ale máte data source deklarovaný v ASPX kódu stránky, taková možnost se nenaskytuje.
Naštěstí asp:DropDownList podporuje možnost kombinovat načtení položek z DataSource s nastavením statických položek. Tento režim se zapíná pomocí property AppendDataBoundItems na true.

Původní deklaraci DropDownListu, např.

<asp:DropDownList ID="ddlCountry" runat="server" DataSourceID="dsCountry" DataValueField="ID" DataTextField="Name" />

tedy doplníte o nastavení této property a přidáte statickou položku (ta se předřadí před položky z datasource a bude tedy i implicitně selectnutá):

<asp:DropDownList ID="ddlCountry" runat="server" AppendDataBoundItems="true" DataSourceID="dsCountry" DataValueField="ID" DataTextField="Name" >
  
<asp:ListItem Value="0" Text="-all-" />
</
asp:DropDownList>

Tolik ke klasickému asp:DropDownListu ze System.Web.UI.

A jak to řešit v DevExpress ASPxComboBoxu:

ASPxComboBox bohužel property AppendDataBoundItems nepodporuje (přestože už dva roky existuje suggestion pro přidání této property).
Většina diskusí na jejich support fóru vede k článku, který radí item přidávat dynamicky až na klientské straně.
Kód pro deklaraci ComboBoxu pak vypadá následovně:

<dx:ASPxComboBox ID="cmbRealm" runat="server" DataSourceID="dsRealm" ValueField="ID" TextField="ID">
  
<ClientSideEvents Init = "function(s, e) {if (s.GetItemCount() <= 0 || s.GetItem(0).value != '') {s.InsertItem(0, '-', '');s.SetSelectedIndex(0);}}"/>
</
dx:ASPxComboBox>

Není to nic nádherného, ale lepší řešení jsem zatím nenašel.

Published 20. října 2010 11:40 by honzas
Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Lukyn said:

Ahoj když mám dropdownlist a chci si vybrat třeba jméno které ma id 1. Tak jak z dropdownlist  dostanu hodnotu toho id. Když jí chci požit na uložení do DB.

prosince 18, 2011 16:00
 

Quigley said:

Heya i am for the primary time here. I came across this board and I in finding It really

helpful & it helped me out much. I'm hoping to present

one thing again and aid others such as you aided me.

července 9, 2014 9:29
 

Mccloskey said:

For example: "I dressed like a princess for Halloween. Transform your everyday living room furniture such as sectionals and armchairs for Halloween celebrations. Dressing as a woman for Halloween is not going to make you look exactly like a woman so you might as well take it over the edge.

srpna 19, 2014 12:12
 

Goetz said:

I am no longer certain where you're getting

your information, but great topic. I musdt spend some time finding out more or

understanding more. Thawnk you for great info

I used to be looking for thjs info for my mission.

srpna 29, 2014 0:55
 

Victoria said:

Your style is really unique in comparison to other people I have read stuff from.

Many thanks for posting when you've got the opportunity, Guess I will just book mark this page.

října 6, 2014 4:03
 

Ryder said:

Right here is the right site for everyone who wishes to understand this topic.

You know a whole lot its almost hard to argue with you (not that

I actually would want to…HaHa). You definitely put a fresh

spin on a topic that has been discussed for a long time. Wonderful stuff, just excellent!

listopadu 16, 2014 17:43
 

Becky said:

To conclude, if your mother wouldn't have let you go to school

'dressed like that' in high school, you shouldn't wear that

outfit to work either. But the first impression oof your

business, organization or firm oten does not start wih you,

but rather with the receptionist or administrative assistant.

Now that wwe have looked at two rules that should be considered unbreakable, let's tacklke some options that the business casual man does have.

Most companie are going witfh the business casual dreess policy because employees still look like tey are

there to work and be professional, but they aren't over-the-top formal.

prosince 19, 2014 1:55
 

Hermine said:

Nationwide Kid's Nourishment Examiner . Medium Glycemic Ӏndex

Meals (fifty six-sixtʏ nine). Popcorn.

února 22, 2015 1:59
 

Raphael said:

Thanks a lot for sharing this with all folks you actually know what you are talking approximately!

Bookmarked. Please also visit my web site =). We could have a

hyperlink trade agreement among us

února 22, 2015 12:18
 

Karma said:

Appreciating the hard work you put into your blog and detailed information you present.

It's nice to come across a blog every once

in a while that isn't the same out of date rehashed information. Fantastic read!

I've saved your site and I'm including your RSS feeds to my Google account.

května 1, 2015 0:47
 

Lakesha said:

I'm no longer positive the place you're getting your information, however great topic.

I must spend a while finding out more or understanding more.

Thanks for wonderful information I was on the lookout for this info for my mission.

května 21, 2015 1:45
 

Susie said:

I was suggested this website by my cousin. I'm no longer certain whether or not this

put up is written via him as nobody else understand such targeted about my trouble.

You are amazing! Thank you!

května 26, 2015 2:53
 

Aracely said:

This post is genuinely a good one it assists new net viewers,

who are wishing in favor of blogging.

září 21, 2015 4:29
 

HectorVResto said:

Asking them questions are truly nice thing

in case you are not understanding something fully, except this paragraph

gives nice understanding yet.

srpna 27, 2016 7:56

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems