在DataGrid中设置DropDownList的SelectedValue

时间:2012-09-13 15:49:17

标签: asp.net data-binding datagrid .net-3.5

我有一个数据源#1绑定的数据网格,例如

public class Class
{
  public string Val { get; set; }
  public string Val2 { get; set; }
}
List<Class> classes = new List<Class>();
dgr.DataSource = classes;

在这个数据网格中,我得到了一个数据源#2绑定到的每一行的列表框:

<Columns>
  <asp:TemplateColumn HeaderText="Spaltenname">
    <ItemTemplate>
      <asp:ListBox runat="server" DataTextField="Text" DataValueField="Value" DataSource="<%#oParentTablesHandler.DataTableXYZ%>" />
    </ItemTemplate>
  </asp:TemplateColumn>
</Columns>

这样可行,但我在设置SelectedValue时遇到了问题。

SelectedValue="<%# "" %>

可以工作,但我需要根据数据源#1中的Val进行选择。我怎样才能做到这一点?我需要使用Eval,但是

SelectedValue="<%# Eval("Val") %> did not work...

编辑:我发现我想按文字而不是按价值选择项目,argh。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

试试这样..

<%# ((Class)Container.DataItem).Val %>

更新:

在'数据源#2的相应列中可能不存在的'Val'属性中可能存在一些值...

因此,为了测试目的,请尝试以下...

<asp:ListBox .. AppendDataBoundItems="true"> 
   <Items>       
 <asp:ListItem Text="NA" Value="" />   
 </Items>
 </asp:ListBox >