显示所选的下拉列表

时间:2010-10-21 16:52:45

标签: c# asp.net

我正在从数据库中检索信用卡类型,并且必须在下拉列表中显示商家使用的信用卡类型。下拉有4种类型,如Master,Visa,American Express和Discover以及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. 

请帮帮我!谢谢!

4 个答案:

答案 0 :(得分:1)

ddCreditCardType.SelectedIndex允许您设置索引。

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

请注意,您确实必须提供错误检查,因为您可能会获得空值...

答案 1 :(得分:1)

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

这是你想做的事情:

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

cardtype是一个int,你将它转换为你的枚举类型CCType。然后将其转换为字符串,返回“Mastercard”或其他任何内容,而不是之前的“1”。您的下拉列表可能具有名称作为其datatext和datavalue bc它没有定义它。如果你的dropdown.DataText =“CardTypeID”或类似的东西你想要将所选值设置为“1”。

答案 2 :(得分:1)

假设你刚刚获得了所有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?)以来已经有一段时间了。

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

祝你好运, 戴夫

答案 3 :(得分:0)

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