我有一個<asp:ListView>
但由於某些原因,儘管<EmptyDataTemplate>
部分顯示,但LayoutTemplate部分在列表爲空時不顯示。 LayoutTemplate包含表格的標題,並且我想在數據源中沒有項目時顯示空表格,而不僅僅是EmptyDataTemplate的內容。ListView LayoutTemplate在空asp.net時不顯示
如果沒有選擇,我會將LayoutTemplate複製到EmptyDataTemplate中,但這似乎很愚蠢。想法?
我有一個<asp:ListView>
但由於某些原因,儘管<EmptyDataTemplate>
部分顯示,但LayoutTemplate部分在列表爲空時不顯示。 LayoutTemplate包含表格的標題,並且我想在數據源中沒有項目時顯示空表格,而不僅僅是EmptyDataTemplate的內容。ListView LayoutTemplate在空asp.net時不顯示
如果沒有選擇,我會將LayoutTemplate複製到EmptyDataTemplate中,但這似乎很愚蠢。想法?
從MSDN:
當綁定到該控件的數據源 不 包含
InsertItemPosition
屬性設置爲 任何記錄和空模板顯示在ListView
控制InsertItemPosition.None
。渲染模板 而不是模板LayoutTemplate
模板。如果InsertItemPosition
屬性被設置爲 除InsertItemPosition.None
之外的值,EmptyDataTemplate
模板不是 呈現的。
這裏的關鍵詞是「...模板呈現的LayoutTemplate
模板而不是 ...」
因此,我認爲,你必須將LayoutTemplate
複製到EmptyDataTemplate
模板。
你也可以把你的用戶控件(.acsx)。然後將其包含在佈局模板和空模板中......因爲您仍然可以在一個位置管理它,所以它會感覺不那麼愚蠢。我知道你如何看待複製相同的代碼......看起來像五年級的學生會做的事情。使用控件是一種更成熟的方法。
確實。對於在ListView中呈現其行的表,我只是將標題標記放在ListView之外,並且LayoutTemplate現在只是持有ItemPlaceholder。 – Graham 2011-06-30 17:54:07