简单国家下拉组件

分享于 

4分钟阅读

Web开发

  繁體

Sample Image - screenshot.gif

介绍

我最近在搜索 VB.Net 中的简单国家/州下拉组件时从站点到站点。 在我的文档中,我不希望支付这么简单的东西,所以我最终确定了一个 C# 组件,我在 Paul Ingles写的CodeProject上找到了它。 这个组件有一个额外的特征来检测用户的国家,我认为它会不必要地使事情复杂化。 我需要非常快速和非常简单的东西,只是一个名字的下拉列表,没有花哨的东西。

因这里我决定创建自己的,并且为那些寻找一个仅仅是- 显示国家名称的组件。

.有关实现的详细信息

让我们先确保在组件类的顶部有下面的语句。

Imports System.Web.UIImports System.Web.UI.WebControlsImports System.ComponentModel

现在让我们开始构建我们的组件。 在我们进入之前,我应该注意我们将添加一个额外属性来定义选定项的值。 这些值将是国家代码( 例如亚美尼亚的ARM ) 或者完整国家名称,就像它们出现在 Text 属性中一样。 我们的控件将在设计时填充国家名称,因这里你可以在需要时访问 Items 集合和修改值。

<DefaultProperty("Text"), ToolboxData("<{0}:CountryDropDown runat="server">_
 </{0}:CountryDropDown>")> PublicClass CountryDropDownInherits System.Web.UI.WebControls.DropDownListPublicEnum ValueListChoice
 CountryCodes = 1 CountryNames = 0EndEnumDim _text AsStringDim vlc As ValueListChoice
<Bindable(True), Category("Appearance"), _ 
 DefaultValue("")> Property [Text]() AsStringGetReturn _textEndGetSet(ByVal Value AsString)
_text = ValueEndSetEndProperty<Bindable(True), Category("Appearance"), _ 
 DefaultValue("0")> Property [ValueList]() As ValueListChoiceGetReturn vlcEndGetSet(ByVal Value As ValueListChoice)
 vlc = Value
 LoadItems()EndSetEndProperty

在构建 ValueListText 属性( 它们都将显示在"外观"属性窗口的部分) 之后,我们将继续构建 Init 事件。 每次绘制控件时触发此事件。

PrivateSub CountryDropDown_Init(ByVal sender AsObject, _ 
 ByVal e As System.EventArgs) HandlesMyBase.Init
 LoadItems()EndSub

LoadItemsprivatesub 基于 ValueList 属性的值加载国家/地区的List。 我们将忽略这里的所有国家,但是你可以在源代码中找到完整的List。

PrivateSub LoadItems()Me.Items.Clear()IfMe.vlc = ValueListChoice.CountryNames ThenMe.Items.Add("--Country--")
 Me.Items.Add("Afghanistan")
 Me.Items.Add("Albania")
 Me.Items.Add("Algeria")
 Me.Items.Add("Andorra")
 Me.Items.Add("Angola")
 Me.Items.Add("Antigua and Barbuda")
 Me.Items.Add("Argentina")
 Me.Items.Add("Armenia")
 'etcElseIfMe.vlc = ValueListChoice.CountryCodes ThenDim col AsNew WebControls.ListItemCollection()
 Dim li As ListItem
 Dim nav AsNew ListItem()
 'load name/value pairs nav.Text = "--Country--" nav.Value = "" col.Add(nav)
 Dim af AsNew ListItem()
 af.Text = "Afghanistan" af.Value = "AFG" col.Add(af) 
 Dim al AsNew ListItem()
 al.Text = "Albania" al.Value = "ALB" col.Add(al)
 'etc'add listitemcollection to the listForEach li In col
 Me.Items.Add(li)NextEndIfEndSub

行了我们都准备好了。 生成DLL并从项目中添加对它的引用。

结束语

最后,两个重要的事情。

  • 国家 List 是从雅虎 ! 国家。
  • CountryCode 选项存储ISO3166代码,而不是 IOC ( 国际。 Olympic ) 代码。

COM  component  Country  
相关文章