【问题标题】:How do I remove the empty row in an ASP.NET GridView when EmptyDataTemplate is being used?使用 EmptyDataTemplate 时,如何删除 ASP.NET GridView 中的空行?
【发布时间】:2015-09-02 16:09:49
【问题描述】:

我有一个 ASP.NET GridView,我想在 gridView 为空时显示一系列文本框,以便用户可以添加更多数据。从功能上讲,它一切正常,但是当它呈现时,它似乎在标题和我的文本框行之间有一个额外的行。

	<table class="grid" cellspacing="0" rules="all" border="1" id="ContentPlaceHolder1_gridViewReferences" style="border-collapse:collapse;">
		<tr>
			<th align="left" scope="col" style="width:50px;">Id</th><th align="left" scope="col">Reference</th><th align="left" scope="col" style="width:400px;">Source</th><th align="left" scope="col" style="width:50px;">Edit</th><th align="left" scope="col" style="width:50px;">Delete</th>
		</tr><tr>
			<td colspan="5">
                <tr style="background-color: #E8ECED;">
                    <td>
                        <span style="display:inline-block;width:50px;">0</span>
                    </td>
                    <td>
                        <input name="ctl00$ContentPlaceHolder1$gridViewReferences$ctl02$textBoxReference" type="text" id="ContentPlaceHolder1_gridViewReferences_textBoxReference" class="ZenStyle" style="width:100%;" />
                    </td>
                    <td>
                        <input name="ctl00$ContentPlaceHolder1$gridViewReferences$ctl02$textBoxSource" type="text" id="ContentPlaceHolder1_gridViewReferences_textBoxSource" class="ZenStyle" style="width:400px;" />
                    </td>
                    <td>
                        <a id="ContentPlaceHolder1_gridViewReferences_LinkButton1" href="javascript:__doPostBack(&#39;ctl00$ContentPlaceHolder1$gridViewReferences$ctl02$LinkButton1&#39;,&#39;&#39;)" style="display:inline-block;width:50px;">Insert</a>
                        <div id="ContentPlaceHolder1_gridViewReferences_ValidationSummary1" style="display:none;">

			</div>
                    </td>
                    <td></td>
                </tr>
            </td>
		</tr>
	</table>

当我检查呈现的 HTML 时,确实有一个额外的行,但我无法确定如何将我的文本框添加到其中或删除它。我的网格 .aspx 代码...我没有包含后面的代码或样式,因为我认为它不相关。

        <asp:GridView ID="gridViewReferences" runat="server" AutoGenerateColumns="False" CssClass="grid" EnableViewState="false"
        AlternatingRowStyle-CssClass="gridAltRow" RowStyle-CssClass="gridRow" ShowFooter="True"
        EditRowStyle-CssClass="gridEditRow" FooterStyle-CssClass="gridFooterRow" OnRowCancelingEdit="gridViewReferences_RowCancelingEdit"
        OnRowCommand="gridViewReferences_RowCommand" OnRowDataBound="gridViewReferences_RowDataBound" OnRowDeleting="gridViewReferences_RowDeleting"
        OnRowEditing="gridViewReferences_RowEditing" OnRowUpdating="gridViewReferences_RowUpdating" DataKeyNames="Id" ShowHeaderWhenEmpty="true">
        <Columns>
            <%--ID column ( which also acts as the key )--%>
            <asp:TemplateField HeaderText="Id" HeaderStyle-HorizontalAlign="Left">
                <HeaderStyle Width="50" />
                <ItemStyle Width="50" />
                <ItemTemplate>
                    <%# Eval("Id")%>
                </ItemTemplate>
            </asp:TemplateField>

             <%--Reference column--%>

            <asp:TemplateField HeaderText="Reference" HeaderStyle-HorizontalAlign="Left">
                <EditItemTemplate>
                    <asp:TextBox Width="100%" ID="textBoxReference" runat="server" Text='<%# Bind("Reference") %>' CssClass="ZenStyle"></asp:TextBox>
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:TextBox Width="100%" ID="textBoxReference" runat="server" CssClass="ZenStyle"></asp:TextBox>
                </FooterTemplate>
                <ItemTemplate>
                    <%# Eval("Reference") %>
                </ItemTemplate>
            </asp:TemplateField>

            <%--Source column--%>

            <asp:TemplateField HeaderText="Source" HeaderStyle-HorizontalAlign="Left">
                <HeaderStyle Width="400" />
                <ItemStyle Width="400" />
                <EditItemTemplate>
                    <asp:TextBox Width="100%" ID="textBoxSource" runat="server" Text='<%# Bind("Source") %>' CssClass="ZenStyle"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label Width="100%" ID="lblEmail" runat="server" Text='<%# Eval("Source")%>' CssClass="ZenStyle" />
                </ItemTemplate>
                <FooterTemplate>
                    <asp:TextBox Width="100%" ID="textBoxSource" runat="server" CssClass="ZenStyle" />
                </FooterTemplate>
            </asp:TemplateField>

            <%--Edit / Update  column--%>

            <asp:TemplateField HeaderText="Edit" ShowHeader="False" HeaderStyle-HorizontalAlign="Left">
                <HeaderStyle Width="50" />
                <ItemStyle Width="50" />
                <EditItemTemplate>
                    <asp:LinkButton ID="lnkUpdate" runat="server" CausesValidation="false" CommandName="Update2"
                        Text="Update" ValidationGroup="Update"></asp:LinkButton>
                    <asp:LinkButton ID="lnkCancel" runat="server" CausesValidation="False" CommandName="Cancel"
                        Text="Cancel"></asp:LinkButton>
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:LinkButton ID="lnkAdd" runat="server" CausesValidation="True" CommandName="Insert" ValidationGroup="Insert" Text="Insert"></asp:LinkButton>
                    <asp:ValidationSummary ID="vsInsert" runat="server" ShowMessageBox="true" ShowSummary="false"
                        ValidationGroup="Insert" Enabled="true" HeaderText="Validation..." />
                </FooterTemplate>
                <ItemTemplate>
                    <asp:LinkButton ID="lnkEdit" runat="server" CausesValidation="False" CommandName="Edit"
                        Text="Edit"></asp:LinkButton>
                </ItemTemplate>
                <HeaderStyle HorizontalAlign="Left" />
            </asp:TemplateField>

            <%--Delete column--%>

            <asp:TemplateField HeaderText="Delete" ShowHeader="False" HeaderStyle-HorizontalAlign="Left">
                <HeaderStyle Width="50" />
                <ItemStyle Width="50" />
                <ItemTemplate>
                    <asp:Button ID="lnkDelete" runat="server" CausesValidation="False" CommandName="Delete" CssClass="myButton"
                        Text="Delete" OnClientClick="return confirm('Delete?')"></asp:Button>
                </ItemTemplate>
                <HeaderStyle HorizontalAlign="Left" />
            </asp:TemplateField>

        </Columns>

        <EmptyDataTemplate>
            <tr style="background-color: #E8ECED;">
                <td>
                    <asp:Label Width="50px" runat="server">0</asp:Label>
                </td>
                <td>
                    <asp:TextBox Width="100%" ID="textBoxReference" runat="server" Text='<%# Bind("Reference") %>' CssClass="ZenStyle"></asp:TextBox>
                </td>
                <td>
                    <asp:TextBox Width="400px" ID="textBoxSource" runat="server" Text='<%# Bind("Source") %>' CssClass="ZenStyle"></asp:TextBox>
                </td>
                <td>
                    <asp:LinkButton Width="50px" ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Insert" ValidationGroup="Insert" Text="Insert"></asp:LinkButton>
                    <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary="false" ValidationGroup="Insert" Enabled="true" HeaderText="Validation..." />
                </td>
                <td></td>
            </tr>
        </EmptyDataTemplate>
    </asp:GridView>

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    你可以解决这个问题

    <EmptyDataRowStyle CssClass="EmptyDataClass" />
    <EmptyDataTemplate>
     ...
    </EmptyDataTemplate>
    

    在你的 CSS 中:

    .EmptyDataVacancyClass {
        display: none;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2012-10-20
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多