我意识到您可以使用SqlDataSource轻松地在gridview中设置下拉列表,但是仅包含listitems的有限列表呢?如果没有DataSource,将绑定置于选定的值似乎不起作用。这是我到目前为止所得到的一个例子。
<EditItemTemplate>
<asp:DropDownList ID="Fund" runat="server" SelectedValue='<%# Bind("Fund") %>' >
<asp:ListItem Value="">---</asp:ListItem>
<asp:ListItem Value="Test1">Test</asp:ListItem>
<asp:ListItem Value="Test2">Test2</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
这似乎是一个非常愚蠢的小问题,我要在我的数据库中制作一个静态的10行表。
答案 0 :(得分:3)
最简单的解决方案是在代码中创建Dictionary<TKey,TValue>
并将其绑定到DropDownList
,或者如您所述,将其绑定到静态表...
示例代码:
Dictionary<string, string> list = new Dictionary<string, string>();
list.Add("item 1", "Item 1");
list.Add("item 2", "Item 2");
list.Add("item 3", "Item 3");
list.Add("item 4", "Item 4");
ddl.DataSource = list;
ddl.DataTextField = "Value";
ddl.DataValueField = "Key";
ddl.DataBind();
答案 1 :(得分:1)
试试这个:
Dictionary<string, string> items= new Dictionary<string, string>();
items.Add("-1","-Select-");
items.Add("Test1", "Test1");
items.Add("Test2", "Test2");
ddl.DataSource = items;
ddl.DataValueField = "Key";
ddl.DataTextField = "Value";
ddl.DataBind();
答案 2 :(得分:0)
您想以编程方式设置DropDownList
。我真的建议避免使用SqlDataSource
控件的用户。它非常笨重,在重用方面也不是很好。
以下代码使用实体框架通过用户名从数据库中检索数据。使用此功能,您可以将所需数据绑定到DropDownList
,而无需在每次需要调用此过程时创建SqlDataSource
。
public List<Record> GetAllRecordsByUserName(string credentials)
{
List<Record> recordList;
using (CustomEntities context = new CustomEntities())
{
IQueryable<Section> recordQuery = from records in context.Records
where records.UserName == credentials
select records;
recordList = recordQuery.ToList<Record>();
}
return recordList;
}
public void BindDropDown()
{
DropDownList1.DataSource = GetAllRecordsByUserName("test.user");
DropDownList1.DataBind();
}