当前位置:  开发笔记 > 编程语言 > 正文

gridview将下拉列表绑定到List <keyvaluePair <int,string >>

如何解决《gridview将下拉列表绑定到List<keyvaluePair<int,string>>》经验,为你挑选了1个好方法。

我的数据库中有许多表,它们包含对键值对的引用:

电话号码类型:

1 - 家

2 - 工作

3 - 移动

4 - 传真

等等

所以我有一个表的类型,当它们在其他表中使用时,它们将int值作为外键引用.当我把它们拉出来时,我一直把它们存放keyvaluepair在正在使用它们的类中.

当我需要获取它们的列表时,我想我只会创建它们的List <>而不是使用两种不同类型的数据类型来获取相同的数据.

当我在使用edittemplate位时需要在gridview中填充下拉列表时,我的问题已经到了.如果我使用数据源将其拉出来,它将在文本中写入[1 Home],而不是将int作为值,将Home作为要显示的文本.

我想我真的有一个多部分问题.

一:

我是傻瓜吗?这是一个非常糟糕的方法来获取数据并存储它(keyvaluepair部分)?我应该将它全部存储在数据表中吗?我不喜欢把它全部放在数据表中.我把我的DAL带到我的BLL并尝试将所有内容封装为对象或List<>对象而不是所有内容的表.大部分时间这都运作良好.

二:

如果我使用某个对象而不是数据表绑定到下拉列表的objectdatasource,我该如何设置当前选择的值,而不是让它只选择列表中的第一项?

编辑

正如下面所指出的,我是一个白痴,只需要设置DataValueField和DataKeyField.

要使下拉列表绑定,我必须这样做:

SelectedValue='<%# DataBinder.Eval(Container, "DataItem.PhoneType.Key") %>'

我没有立刻看到它的原因是因为它没有出现在我的intellisense中,但是当我手动键入它时,它起作用了.



1> CMS..:

使用Dictionary 并将DropDown DataValueField设置为Key,将DataTextField设置为Value.

    // A sample dictionary:
    var dictionary = new Dictionary();
    dictionary.Add(1, "Home");
    dictionary.Add(2, "Work");
    dictionary.Add(3, "Mobile");
    dictionary.Add(4, "Fax");

    // Binding the dictionary to the DropDownList:
    dropDown.DataTextField = "Value";
    dropDown.DataValueField = "Key";
    dropDown.DataSource = dictionary;  //Dictionary
    dropDown.DataBind();

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有