另一個列表複製下拉列表創建一個數據層方法從與DataTextField和DataValueField
public static List<SegmentBL> GetAllSegment(string SortDirection, string SortExpression)
{
var ds = DBHelper.GetDatabase().ExecuteDataSet("UDS_Select_SegmentMaster");
var val = ds.Tables[0].AsEnumerable().Select(r => new SegmentBL
{
_SegmentId = Convert.ToInt32(r[0].ToString()),
_SegmentName = r[1].ToString()
});
List<SegmentBL> list = val.ToList();
return list;
}
從我創建一個經營業務邏輯方法
public DropDownList GetAll(string SortDirection, string SortExpression)
{
var list = new DropDownList();
list.DataSource = SegmentDL.GetAllSegment(SortDirection, SortExpression);
list.DataTextField = "_SegmentName";
list.DataValueField = "_SegmentID";
list.DataBind();
ListItem item = new ListItem();
item.Text = "--Select--";
item.Value = "0";
list.Items.Insert(0, item);
return list;
}
最後表示層的方法用於填充下拉列表
private void FillSegment()
{
ddlSegment.DataSource = seg.GetAll(General.SortAscending,"SegmentID").Items;
ddlSegment.DataBind();
ddlSegment.DataTextField = "_SegmentName";
ddlSegment.DataValueField = "_SegmentID";
}
它工作正常,除了DataTextField和DataValueField否正確分配。目前DataTextField和DataValueField是相同的。在上面的代碼中我犯了什麼錯誤。
不確定業務邏輯是否應該創建UI元素 - 您可以將數據源項返回到表示層。嘗試並將相同的東西綁定兩次似乎不合邏輯。 – iandayman
因爲我在應用程序中使用的同一行代碼超過20次。 –