0

我的 GridView 数据绑定到 SQL 数据连接,该连接几乎总是返回数据。所以使用 EmptyDataTemplate 对我没有帮助,因为 GridView 永远不应该为空。但我希望前几行是可编辑的,以便用户可以向 GridView 添加新信息。所以我精心设计了我的 Select 语句,总是返回 3 个空行。我希望这些行包含文本框而不是标签。但是这个:

<asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="False" DataSourceID="SqlDataSource1" 
        BorderColor="White" BorderStyle="Solid" 
        onselectedindexchanged="GridView1_SelectedIndexChanged" ShowFooter="False" 
        ViewStateMode="Disabled">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <input type="checkbox" id ="CheckBox1" class="checkbox" />
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Serial" SortExpression="Serial">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("Serial") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Model" SortExpression="Model">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("Model") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="From Store">
                <ItemTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server" CssClass="dropdownlist" 
                        DataSourceID="SqlDataSource2" DataTextField="Store" 
                        SelectedValue='<%# Bind("Store") %>'>
                    </asp:DropDownList>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="To Store">
                <ItemTemplate>
                    <asp:DropDownList ID="DropDownList2" runat="server" CssClass="dropdownlist" 
                        DataSourceID="SqlDataSource2" DataTextField="Store">
                    </asp:DropDownList>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>
        </Columns>
        <FooterStyle HorizontalAlign="Center" ForeColor="White" BorderColor="White" BorderStyle="Solid" />
        <HeaderStyle ForeColor="White" BorderColor="White" BorderStyle="Solid" />
        <RowStyle BorderColor="White" BorderStyle="Solid" ForeColor="White" />            
    </asp:GridView>

产生这个: 在此处输入图像描述

其中前 3 行具有不可编辑的标签而不是文本框。我想做的事可能吗?

4

2 回答 2

1

在您的模板字段中添加<FooterTemplate></FooterTemplate>这使您的 gridview 的页脚行成为您可以添加新行的地方。当然你需要把物品放在里面<FooterTemplate>,但工作和你<ItemTemplate的一样

于 2012-05-11T16:09:49.807 回答
0

因此,为了满足我的特定目的,我决定只创建一个与此分开的表格,其中包含一个带有文本框的空行。然后是一个按钮,该按钮使用 JQuery 从该表中获取值,以将它们附加到 DataGrid 中不可编辑的行中。从 DataGrid 中删除了标题行,使其看起来像同一个表。

于 2012-05-14T13:23:29.927 回答