1

従業員を選択できる 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();
    }

問題は、ページの読み込み時に制御するデータがバインドされていないため、ListView の項目テンプレートで <%#Eval("Name") %> できないことです。

これを回避する方法はありますか?

4

1 に答える 1

1

のEmptyItemTemplateを作成してみてくださいListView。そうすれば、データがない場合、(存在しない)「名前」データで評価しようとしないコンテンツを表示できます。

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

ItemTemplate の構造に準拠させることができますが、データバインディングを行うすべての場所に空白/空の文字列を残すだけです。

于 2013-05-15T19:34:34.513 に答える