将数据视图中的两个值存储到下拉列表中

时间:2013-06-13 21:06:17

标签: c# asp.net .net-2.0

有没有办法在下拉列表中存储ID和测试ID值,但我需要显示DisplayName?选择项目时我需要这两个值

ID | TestID | DisplayName
 1 |   2    |  Test

示例代码:

ddList.DataSource = DvName;
ddList.DataTextField = "DisplayName";
ddList.DataValueField = "ID";   // + "TestID" ???

3 个答案:

答案 0 :(得分:2)

您可以使用分隔符将两个值放在一起,然后在将它们拉出后将其分隔。

ddList.DataValueField = obj.ID + "~" + obj.TestID;

否则,您可以创建一个包含ID和测试ID的字典,这样当您从下拉列表中选择项目时,可以使用值字段作为字典的键并选择TestID。

private Dictionary<string, string> referenceValues = new Dictionary<string, string>();
referenceValues.Add("ID", "TestID");
ddList.DataValueField = "ID";
//When pulling then value back
var referencedItem = referenceValues[ddList.selectedValue];

答案 1 :(得分:0)

假设您为每个数据实例使用了一个类;向该类添加另一个属性并绑定到该属性:

public class MyObject
{
  //other stuff
  public string DisplayValue
  {
     get { return String.Format("{0} ({1})", ID, TestID); }
  }
}

ddList.DataSource = DvName;
ddList.DataTextField = "DisplayName";
ddList.DataValueField = "DisplayValue";

答案 2 :(得分:0)

假设您从模型中获取此值,您可以执行以下操作:

public string NewValue
{
    get
    {
         return ID+ "," + TestId;
    }
}

ddList.DataSource = DvName;
ddList.DataTextField = "DisplayName";
ddList.DataValueField = "NewValue";