显示选定的下拉列表

问题描述:

我从数据库检索信用卡类型,并且必须在下拉列表中显示商户使用的信用卡类型。下拉菜单包括Master,Visa,American Express和Discover等4种类型以及select。显示选定的下拉列表

我检索得很好,但我不确定如何绑定它,使其具有所有4种类型以及select,但应显示已使用的信用卡。

if (cardtype == 1) 
{        
    ddCreditCardType.SelectedValue = ((int)CommonHelper.CCType.Master).ToString();         
} 

((int)CommonHelper.CCType.Master).ToString(); 
//This part gets the type of card used but does not put in the ddCreditCardType. 

请帮帮我!谢谢!

+1

你们都只是真棒!我非常感谢你们。非常感谢! – Ram 2010-10-21 18:35:23

它看起来像你的CCType是一个枚举。

这里是你想要做什么:

ddCreditCardType.SelectedValue = ((CommonHelper.CCType) cardtype).ToString();         

cardtype是一个int,你把它投放到您的枚举类型CCType。然后将其转换为返回“万事达卡”或其他类似字符串的字符串,而不是“1”。您的下拉菜单可能具有名称作为其datatext和数据值bc它没有定义它。如果你的dropdown.DataText =“CardTypeID”或类似的东西,你会想将选定的值设置为“1”。

当您构建下拉列表时,下拉列表中的值是多少。您可以选择要显示的文本以及每个项目后面的值。如果你的值是CommonHelper.CCType.Master),它应该工作。

ddCreditCardType.SelectedIndex允许您设置索引。

string TypeOfCard = "Mastercard"; // Replace with your retrieval code  
ddCreditCardType.SelectedIndex = ddCreditCardType.Items.IndexOf("Mastercard"); 

注意,你真的必须提供错误检查,因为你可以得到空...

假设你刚刚得到了所有的CC类型的常量,我可能只是这样做:

var selectedCardId = ??; 

//Make an array of all the card types (this can be a constant) 
var cardTypes = new CommonHelper.CCType[]{CommonHelper.CCType.Master, CommonHelper.CCType.Visa, CommonHelper.CCType.Express, CommonHelper.CCType.Whatever}; 

//Loop through, and build the drop-down 
foreach(var card in cardTypes) 
{ 
    ddCreditCardType.Items.Add(new ListItem 
    { 
     Value = ((int)card).ToString(), 
     Text = card.ToString(), 
     IsSelected = (selectedCardId == (int)card) 
    }); 
} 

对不起,它已经有一段时间,因为我做的WebForms(或Winforms?)

您必须仔细检查列表项目的属性。

好运, 戴夫