2011-03-31 68 views
5

我有一個<asp:ListView>但由於某些原因,儘管<EmptyDataTemplate>部分顯示,但LayoutTemplate部分在列表爲空時不顯示。 LayoutTemplate包含表格的標題,並且我想在數據源中沒有項目時顯示空表格,而不僅僅是EmptyDataTemplate的內容。ListView LayoutTemplate在空asp.net時不顯示

如果沒有選擇,我會將LayoutTemplate複製到EmptyDataTemplate中,但這似乎很愚蠢。想法?

回答

12

MSDN

當綁定到該控件的數據源 不 包含 InsertItemPosition屬性設置爲 任何記錄和空模板顯示在 ListView控制InsertItemPosition.None。渲染模板 而不是模板 LayoutTemplate模板。如果 InsertItemPosition屬性被設置爲 除 InsertItemPosition.None之外的值, EmptyDataTemplate模板不是 呈現的。

這裏的關鍵詞是「...模板呈現LayoutTemplate模板而不是 ...」

因此,我認爲,你必須將LayoutTemplate複製到EmptyDataTemplate模板。

+6

確實。對於在ListView中呈現其行的表,我只是將標題標記放在ListView之外,並且LayoutTemplate現在只是持有ItemPlaceholder。 – Graham 2011-06-30 17:54:07

0

你也可以把你的用戶控件(.acsx)。然後將其包含在佈局模板和空模板中......因爲您仍然可以在一個位置管理它,所以它會感覺不那麼愚蠢。我知道你如何看待複製相同的代碼......看起來像五年級的學生會做的事情。使用控件是一種更成熟的方法。