2013-08-05 41 views
0

我有以下gridview。沒有錯誤,但是當我使用w3c驗證程序驗證頁面並且沒有行存在時,colspan屬性獲取gridview中定義列的數量值。 當沒有行存在時,我們可以使gridview刪除colspan屬性嗎?asp:GridView EmptyData行有錯誤colspan

<asp:GridView ID="gv1" AutoGenerateColumns="False" ShowFooter="true" runat="server" 
     AllowSorting="true" AllowPaging="true" CssClass="gridview" OnDataBound="gv_DataBound" 
     OnRowDataBound="gv_RowDataBound" DataKeyNames="id" CellSpacing="-1" GridLines="None" 
     EmptyDataText="no reference substances linked!"> 
     <Columns> 
      <asp:HyperLinkField DataTextField="name" HeaderText="reference substance" DataNavigateUrlFormatString="~/ReferenceSubstances/{0}.aspx" 
       DataTextFormatString="{0}" Target="_self" DataNavigateUrlFields="id" SortExpression="name" /> 
      <asp:BoundField DataField="supplier" HeaderText="supplier" SortExpression="supplier" /> 
      <asp:BoundField DataField="supplier_code" HeaderText="supplier code" SortExpression="supplier_code" /> 
      <asp:BoundField DataField="lot" HeaderText="lot" SortExpression="lot" /> 
     </Columns> 
     <PagerStyle CssClass="footer" /> 
     <PagerTemplate> 
      <asp:GridViewPager ID="GridViewPager1" runat="server" /> 
     </PagerTemplate> 
    </asp:GridView> 

回答

0

請添加ShowHeaderWhenEmpty = 「true」 屬性顯示emptydatatext而GridView中沒有記錄。對不起,如果這不是你要求的

<asp:GridView ID="gv1" ShowHeaderWhenEmpty="true" etc 
+0

事實上,當ShowHeaderWhenEmpty屬性沒有設置時,gridview應該有足夠的智能去除colspan屬性。但是這足夠接近。驗證工作,這是主要的觀點。 – ingkebil

0

聽起來像是你需要一個EmptyDataTemplate

<asp:GridView ... 
    <EmptyDataTemplate> 
     render any markup 
    </EmptyDataTemplate> 
</asp:GridView> 

更換​​吳泰任何W3C兼容的標記。

+0

這與使用EmptyDataText屬性的結果完全相同。生成的表中生成的屬性仍然讀取colspan =「4」:/ – ingkebil

0

試試這個

<asp:GridView ID="gv1" AutoGenerateColumns="False" ShowFooter="true" runat="server" 
     AllowSorting="true" AllowPaging="true" CssClass="gridview" OnDataBound="gv_DataBound" 
     OnRowDataBound="gv_RowDataBound" DataKeyNames="id" CellSpacing="-1" GridLines="None" 
> 
    <EmptyDataTemplate> 
            no reference substances linked! 
           </EmptyDataTemplate> 
     <Columns> 
      <asp:HyperLinkField DataTextField="name" HeaderText="reference substance" DataNavigateUrlFormatString="~/ReferenceSubstances/{0}.aspx" 
       DataTextFormatString="{0}" Target="_self" DataNavigateUrlFields="id" SortExpression="name" /> 
      <asp:BoundField DataField="supplier" HeaderText="supplier" SortExpression="supplier" /> 
      <asp:BoundField DataField="supplier_code" HeaderText="supplier code" SortExpression="supplier_code" /> 
      <asp:BoundField DataField="lot" HeaderText="lot" SortExpression="lot" /> 
     </Columns> 
     <PagerStyle CssClass="footer" /> 
     <PagerTemplate> 
      <asp:GridViewPager ID="GridViewPager1" runat="server" /> 
     </PagerTemplate> 
    </asp:GridView> 
+0

這與使用EmptyDataText屬性的結果完全相同。生成的表中生成的屬性仍然讀取colspan =「4」。 – ingkebil