Вам необходимо отсоединить GridView от источника данных. Я предполагаю, что вы подключили источник данных следующим образом, и в этом случае не делайте так.
<asp:LinqDataSource
runat="server"
ContextTypeName="AdventureWorksDataContext"
TableName="Contacts"
ID="LinqDataSource1">
</asp:LinqDataSource>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="LinqDataSource1" >
</asp:GridView>
Вам лучше присоединить источник данных в вашем коде, когда это необходимо.
if (dataSourceNeeded == true) {
GridView1.DataSource = GetDataSource();
GridView1.DataBind();
}