2013-10-31 35 views
1

我建立一個SqlDataSource和一個GridView:爲什麼我的gridview爲空?

 <asp:SqlDataSource ID="DetailsSQLDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:aspnet-WebApplication6-20131007103938ConnectionString1 %>" 
    SelectCommand="SELECT [ProjectID], [ProjectName], [CreatorID], [Deadline] FROM [tProject] WHERE 1=1" 
    > 
     <SelectParameters> 
     <asp:Parameter Type="String" Name="ProjectID"></asp:Parameter> 
     </SelectParameters> 
    </asp:SqlDataSource> 


<asp:GridView ID="GridView1" runat="server" DataSourceID="DetailsSQLDataSource" AutoGenerateColumns="False" DataKeyNames="ProjectID" OnRowUpdated="GridView1_RowUpdated" OnRowUpdating="GridView1_RowUpdating"> 
    <Columns> 
     <asp:BoundField DataField="ProjectID" HeaderText="ProjectID" ReadOnly="True" SortExpression="ProjectID"></asp:BoundField> 
     <asp:BoundField DataField="ProjectName" HeaderText="ProjectName" SortExpression="ProjectName"></asp:BoundField> 
     <asp:BoundField DataField="CreatorID" HeaderText="CreatorID" SortExpression="CreatorID"></asp:BoundField> 
     <asp:BoundField DataField="Deadline" HeaderText="Deadline" SortExpression="Deadline"></asp:BoundField> 
    </Columns> 
</asp:GridView> 

我已經測試的SelectCommand,並且它返回一個表具有4行。但是沒有數據要顯示在gridview中。代碼隱藏幾乎是空的,肯定不會影響這些控件。它可以是連接的東西嗎?我如何測試?

+0

卡爾建議,在你的頁面加載事件調用Gridview1.DataBind()。像這樣if(!IsPostback)GridView1.DataBind(); –

回答

1

呼叫.DataBind()實際上迫使數據綁定到網格,像這樣:

GridView1.DataBind(); 
+0

謝謝,這個工程。但我不明白。在另一個非常相似的頁面上,我不必手動調用數據綁定,它會自動發生。 –

+1

@ViktorPless - 您是否在另一頁上使用了AutoGenerateColumns =「True」? –

+0

我嘗試了兩個值,所以它可能不是原因。你知道什麼是有趣的嗎?現在我已經完成了你所說的我不再需要隱藏代碼,新插入的控件現在可以在沒有數據綁定方法的情況下正常工作!這就像他學會了如何綁定數據:) –