页脚行无法通过asp gridview插入表格

时间:2015-10-13 13:31:35

标签: asp.net vb.net gridview sqldataadapter

我正在使用vb.net并且已经按照教程设置了一个gridview来更新/删除/将记录插入到表中。我有一个不适合我的页脚行。当我单击我的插入按钮时,页脚中的文本框不会执行插入操作。我想我错过了造成这种情况的根本原因。在子文件从文本框中获取文本之前,页面是否可以回发?我对它的理解很好,但我觉得这可能是问题,因为我有两个单选按钮用于在SQL数据适配器之间切换,因为我希望能够使用不同的表。我将这些设置为postback =" true"。这可能是我的问题吗?

的SqlDataAdapter:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
            ConnectionString="Server=SQLSERVER;Database=DB1;UID=user;PWD=password"
            DeleteCommand="delete from AVZV_LoginRequestSales where id = @id"
            SelectCommand="select * from AVZV_LoginRequestSales"
            UpdateCommand="update AVZV_LoginRequestSales set name=@name, role = @role, supervisor = @supervisor, location = @location, trainingSdt = @trainingSdt, productionSdt = @productionSdt, terminatedDate = @terminatedDate, notes = @notes  where id = @id">
            <DeleteParameters>
                <asp:Parameter Name="id" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="firstname" />
                <asp:Parameter Name="lastname" />
                <asp:Parameter Name="role" />
                <asp:Parameter Name="supervisor" />
                <asp:Parameter Name="location" />
                <asp:Parameter Name="trainingSdt" />
                <asp:Parameter Name="productionSdt" />
                <asp:Parameter Name="terminatedDate" />
                <asp:Parameter Name="notes" />
            </UpdateParameters>
        </asp:SqlDataSource>

的Datagrid:

<asp:GridView ID="gvMatrix" runat="server" 
        AutoGenerateColumns="false" enableviewstate="false" showheaderwhenempty="true" 
        AllowSorting="True" emptydatatext="No Agents Listed" showfooter="true" 
        OnDataBound="OnDataBound"  DataKeyNames="id" >
            <Columns>
                <asp:TemplateField HeaderText="Full Name" InsertVisible="False" SortExpression="FirstName">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtName" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
                    <FooterTemplate>
                        <asp:TextBox ID="newName" runat="server" placeholder="Full Name"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False" />
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Role" InsertVisible="False" SortExpression="role">
                    <ItemTemplate>
                        <asp:Label ID="Label7" runat="server" Text='<%# Bind("role") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtrole" runat="server" Text='<%# Bind("role") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
                    <FooterTemplate>
                        <asp:TextBox ID="newrole" runat="server" placeholder="Role"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False" />
                </asp:TemplateField>


                <asp:TemplateField HeaderText="Supervisor" InsertVisible="False" SortExpression="supervisor">
                    <ItemTemplate>
                        <asp:Label ID="Label8" runat="server" Text='<%# Bind("supervisor") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtsupervisor" runat="server" Text='<%# Bind("supervisor") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
                    <FooterTemplate>
                        <asp:TextBox ID="newsupervisor" runat="server" placeholder="Supervisor"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False" />
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Location" InsertVisible="False" SortExpression="location">
                    <ItemTemplate>
                        <asp:Label ID="Label10" runat="server" Text='<%# Bind("location") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtlocation" runat="server" Text='<%# Bind("location") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
                    <FooterTemplate>
                        <asp:TextBox ID="newlocation" runat="server" placeholder="Location"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False" />
                </asp:TemplateField>


                <asp:TemplateField HeaderText="Training Start Date" InsertVisible="False" SortExpression="trainingsdt">
                    <ItemTemplate>
                        <asp:Label ID="Label9" runat="server" Text='<%# Bind("trainingsdt") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txttrainingsdt" runat="server" Text='<%# Bind("trainingsdt") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />

                    <FooterTemplate>
                        <asp:TextBox ID="newtrainingsdt" runat="server" placeholder="Training Start Date"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False"/>
                </asp:TemplateField>


                <asp:TemplateField HeaderText="Production Start Date" InsertVisible="False" SortExpression="Productionsdt">
                    <ItemTemplate>
                        <asp:Label ID="Label9" runat="server" Text='<%# Bind("Productionsdt") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtProductionsdt" runat="server" Text='<%# Bind("Productionsdt") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />

                    <FooterTemplate>
                        <asp:TextBox ID="newProductionsdt" runat="server" placeholder="Production Start Date"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False"/>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Terminated Date" InsertVisible="False" SortExpression="Terminateddate">
                    <ItemTemplate>
                        <asp:Label ID="Label9" runat="server" Text='<%# Bind("Terminateddate") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtTerminateddate" runat="server" Text='<%# Bind("Terminateddate") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />

                    <FooterTemplate>
                        <asp:TextBox ID="newTerminateddate" runat="server" placeholder="Terminated Date"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False"/>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Notes" InsertVisible="False" SortExpression="notes">
                    <ItemTemplate>
                        <asp:Label ID="Label9" runat="server" Text='<%# Bind("notes") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox id="txtNotes" runat="server" Text='<%# Bind("notes") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />

                    <FooterTemplate>
                        <asp:TextBox ID="newNotes" runat="server" placeholder="Notes"></asp:TextBox>
                    </FooterTemplate>
                    <FooterStyle Wrap="False"/>
                </asp:TemplateField>


                <asp:TemplateField>
                    <FooterTemplate>
                        <ItemTemplate>
                            <asp:Button ID="InsertRecord" runat="server" Text="Add Record" CommandName="Insert" />
                        </ItemTemplate>
                    </FooterTemplate>
                </asp:TemplateField>

               <asp:CommandField ButtonType="Button" showeditbutton="true"/>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button ID="deleteButton" runat="server" Text="Delete" CommandName="Delete" OnClientClick="return confirm('Are you sure you want to delete this record?');" />
                    </ItemTemplate>
                </asp:TemplateField>



            </Columns>
            <HeaderStyle BackColor="#3367a2" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#2461bf" Font-Bold="True" ForeColor="blue" HorizontalAlign="Center" />
            <EditRowStyle CssClass="gridview_edit" />
            <FooterStyle CssClass="GVFixedFooter" />
            <AlternatingRowStyle BackColor="#eff3fb"  ForeColor="#3367a2" HorizontalAlign="Center" />
        </asp:GridView>

插入代码:

Protected Sub gvMatrix_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles gvMatrix.RowCommand

    ' Insert data if the CommandName == "Insert" 
    If e.CommandName = "Insert" AndAlso Page.IsValid Then
        If rbSales.checked = True Then
            SqlDataSource1.Insert()
        Else
            SqlDataSource2.Insert()
        End If
    End If
End Sub

Protected Sub SqlDataSource1_Inserting(ByVal sender As Object, ByVal e As SqlDataSourceCommandEventArgs) Handles SqlDataSource1.Inserting

    ' Programmatically reference Web controls in the inserting interface...
    Dim NewName As TextBox = _
        gvMatrix.FooterRow.FindControl("NewName")
    Dim NewRole As TextBox = _
        gvMatrix.FooterRow.FindControl("NewRole")
    Dim NewSupervisor As TextBox = _
        gvMatrix.FooterRow.FindControl("NewSupervisor")
    Dim NewLocation As TextBox = _
        gvMatrix.FooterRow.FindControl("NewLocation")
    Dim Newtrainingsdt As TextBox = _
        gvMatrix.FooterRow.FindControl("Newtrainingsdt")
    Dim Newproductionsdt As TextBox = _
        gvMatrix.FooterRow.FindControl("Newproductionsdt")
    Dim Newterminateddate As TextBox = _
        gvMatrix.FooterRow.FindControl("Newterminateddate")
    Dim NewNotes As TextBox = _
        gvMatrix.FooterRow.FindControl("NewNotes")
    ' Set the ObjectDataSource's InsertParameters values...
    e.command.parameters("Name").Value = NewName.Text
    e.command.parameters("role").Value = NewRole.Text
    e.command.parameters("supervisor").Value = NewSupervisor.Text
    e.command.parameters("location").Value = NewLocation.Text
    e.command.parameters("trainingsdt").Value = Newtrainingsdt.Text
    e.command.parameters("productionsdt").Value = Newproductionsdt.Text
    e.command.parameters("terminatedDate").Value = Newterminateddate.Text
    e.command.parameters("notes").Value = NewNotes.Text

End Sub

我知道很多东西要看,但我觉得我的问题可能与代码不一样,因为我错过了一个概念。提前感谢任何想法/建议。

0 个答案:

没有答案