ASP.NET控件数据源由另一个Control更改

时间:2013-05-15 18:26:15

标签: c# asp.net entity-framework listview gridview

我有一个ASP.NET Gridview控件,允许您选择一个员工。

员工实体具有组实体的导航属性。

我有一个ASP.NET ListView控件,显示员工所在的所有组。

GridView的SelectedIndexChanged函数看起来像这样

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DAL.SafetyContext sc = new DAL.SafetyContext();
        long empid = (long)GridView1.SelectedDataKey.Value;
        DAL.Employee emp = sc.Employees.Where(x => x.EID == empid).FirstOrDefault();
        ListView1.DataSource = emp.Groups;
        ListView1.DataBind();
    }

问题在于我不能<%#Eval(“Name”)%>在ListView的项模板中,因为页面加载时没有绑定控制的数据。

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

尝试为ListView创建EmptyItemTemplate。这样,当没有数据时,您可以在(不存在的)“名称”数据上显示不尝试Eval的内容。

<EmptyItemTemplate>
   <td runat="server">Nothing to see here</td>
</EmptyItemTemplate>

您可以使它符合ItemTemplate的结构,但只需在您进行数据绑定的所有位置留下空格/空字符串。