2011-05-05 104 views
2

我有一個gridview,它顯示的數據取決於文本框和按鈕控件。由於gridview不顯示任何東西(除非用戶在文本框中輸入了一個輸入),我怎樣才能用表格中的所有數據填充它?我正在考慮在EmptyDataTemplate中插入另一個gridview,但是有什麼方法可以顯示所有記錄,即使沒有用戶輸入?用數據ASP.NET C填充Gridview EmptyDataTemplate#

剛剛在ASP.NET開始,所以我真的需要你的幫助球員。

在此先感謝;)

這裏是我的代碼示例:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
     DataKeyNames="lenid" DataSourceID="returningDataSource" ForeColor="#333333" 
     GridLines="None"> 
     <RowStyle BackColor="#EFF3FB" /> 
     <Columns> 
      <asp:CommandField HeaderStyle-Width="120px" ButtonType="Button" ShowEditButton="True" ShowDeleteButton="True" /> 
      <asp:BoundField DataField="bookid" HeaderText="Book ID/ISBN" 
       SortExpression="bookid" /> 
      <asp:BoundField DataField="booktitle" HeaderText="Title" 
       SortExpression="booktitle" /> 
      <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" 
       SortExpression="EmployeeID" /> 
      <asp:BoundField DataField="department" HeaderText="Department" 
       SortExpression="department" /> 
      <asp:BoundField DataField="dateborrowed" HeaderText="Date borrowed" 
       SortExpression="dateborrowed" /> 
      <asp:BoundField DataField="datereturned" HeaderText="Date returned" 
       SortExpression="datereturned" NullDisplayText="-- not yet returned --" /> 
     </Columns> 
     <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
     <EmptyDataTemplate> 
      <asp:GridView ID="GridView2" runat="server" AllowPaging="True" 
       AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
       DataKeyNames="lenid" DataSourceID="returningDataSource" ForeColor="#333333" 
       GridLines="None"> 
       <RowStyle BackColor="#EFF3FB" /> 
       <Columns> 
        <asp:CommandField HeaderStyle-Width="120" ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True" /> 
        <asp:BoundField DataField="bookid" HeaderText="Book ID/ISBN" 
         SortExpression="bookid" /> 
        <asp:BoundField DataField="booktitle" HeaderText="Title" 
         SortExpression="booktitle" /> 
        <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" 
         SortExpression="EmployeeID" /> 
        <asp:BoundField DataField="department" HeaderText="Department" 
         SortExpression="department" /> 
        <asp:BoundField DataField="dateborrowed" HeaderText="Date borrowed" 
         SortExpression="dateborrowed" /> 
        <asp:BoundField DataField="datereturned" HeaderText="Date returned" 
         SortExpression="datereturned" NullDisplayText="-- not yet returned --" /> 
       </Columns> 
       <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
       <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
       <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
       <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
       <EditRowStyle BackColor="#2461BF" /> 
       <AlternatingRowStyle BackColor="White" /> 
      </asp:GridView> 
      <asp:SqlDataSource ID="returningDataSource" runat="server" 
       ConnectionString="<%$ ConnectionStrings:LibrarySystemConnectionString %>" 
       DeleteCommand="DELETE FROM [LendTable] WHERE [lenid] = @lenid" 
       InsertCommand="INSERT INTO [LendTable] ([bookid], [EmployeeID], [department], [dateborrowed], [datereturned]) VALUES (@bookid, @EmployeeID, @department, @dateborrowed, @datereturned)" 
       SelectCommand="SELECT dbo.LendTable.lenid, dbo.LendTable.bookid, dbo.LendTable.EmployeeID, dbo.LendTable.department, dbo.LendTable.dateborrowed, dbo.LendTable.datereturned, dbo.TblBooks.booktitle FROM dbo.LendTable INNER JOIN dbo.TblBooks ON dbo.LendTable.bookid = dbo.TblBooks.bookid" 

       UpdateCommand="UPDATE [LendTable] SET [bookid] = @bookid, [EmployeeID] = @EmployeeID, [department] = @department, [dateborrowed] = @dateborrowed, [datereturned] = @datereturned WHERE [lenid] = @lenid"> 
       <DeleteParameters> 
        <asp:Parameter Name="lenid" Type="Int32" /> 
       </DeleteParameters> 
       <UpdateParameters> 
        <asp:Parameter Name="bookid" Type="Int64" /> 
        <asp:Parameter Name="EmployeeID" Type="String" /> 
        <asp:Parameter Name="department" Type="String" /> 
        <asp:Parameter Name="dateborrowed" Type="DateTime" /> 
        <asp:Parameter Name="datereturned" Type="DateTime" /> 
        <asp:Parameter Name="lenid" Type="Int32" /> 
       </UpdateParameters> 
       <InsertParameters> 
        <asp:Parameter Name="bookid" Type="Int64" /> 
        <asp:Parameter Name="EmployeeID" Type="String" /> 
        <asp:Parameter Name="department" Type="String" /> 
        <asp:Parameter Name="dateborrowed" Type="DateTime" /> 
        <asp:Parameter Name="datereturned" Type="DateTime" /> 
       </InsertParameters> 
      </asp:SqlDataSource> 
     </EmptyDataTemplate> 
     <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
     <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <EditRowStyle BackColor="#2461BF" /> 
     <AlternatingRowStyle BackColor="White" /> 
    </asp:GridView> 

我想從表中顯示的所有記錄,如果用戶不輸入任何輸入(或填補了EmptyDataTemplate來自數據庫的記錄)。再次

謝謝!

+0

1. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx查看EmptyDataTemplate的示例。2.我假設您正在填充通過過濾輸入到文本框中的值的數據來篩選數據。您可以使用Page_Load中的所有數據填充網格,同時檢查IsPostBack .. – sajoshi 2011-05-05 03:32:31

+0

如何填充Gridivew數據?你在使用SQL數據源嗎? – 2011-05-05 04:18:28

+0

@sajoshi謝謝。我仍然在閱讀它,但我無法得到它的工作:/ @Muahmmad我填充我的GridView與SQL數據源,所以我想要做的就是顯示所有記錄,如果沒有來自文本框的輸入(gridview被綁定到一個文本框控件) – Loupi 2011-05-06 01:20:18

回答

0

執行返回的數據源的選擇命令,它會返回整個行OD表並綁定到原始網格中(!的IsPostBack)在Page_Load和下一次,當你需要根據文本數據綁定框輸入執行查詢並將數據綁定到同一網格。