[英]grid view is not displaying in asp.net . in datatable there is data but not displaying gridview
[英]GridView in ASP.NET is not displaying with or without data
我正在添加一個GridView,然后從SQL Server數據庫中顯示數據。 問題是GridView沒有在帶有或沒有數據的瀏覽器中顯示。
這是我的代碼:
<asp:GridView ID="GridAllStore" runat="server" AutoGenerateColumns="False" Width="100%" ViewStateMode="Enabled">
public partial class AdminPanel : System.Web.UI.Page
{
storelocatorDataSetTableAdapters.storedbTableAdapter tastore = new storelocatorDataSetTableAdapters.storedbTableAdapter();
storelocatorDataSetTableAdapters.View_1TableAdapter taview = new storelocatorDataSetTableAdapters.View_1TableAdapter();
List<storelocatorDataSet.storedbRow> lststore = new List<storelocatorDataSet.storedbRow>();
List<storelocatorDataSet.View_1Row> lstview = new List<storelocatorDataSet.View_1Row>();
protected void Page_Load(object sender, EventArgs e)
{
lstview = taview.GetData().ToList();
GridAllStore.DataSource = lstview;
}
}
我認為問題是你沒有定義要顯示的任何列。 將AutoGenerateColumns
設置為false時,必須顯式定義列。
要確保基礎工作正常,請將AutoGenerateColumns
設置為true:
<asp:GridView ID="GridAllStore" runat="server" AutoGenerateColumns="true" Width="100%" ViewStateMode="Enabled">
將AutoGenerateColumns
設置為true,分配的數據源和調用的DataBind()
,您應該開始看到一些數據。 一旦開始查看數據,就可以定義要顯示的特定列。
由於您只需要在第一頁加載時綁定網格,因此使用!Page.IsPostBack
條件:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GridAllStore.DataSource = lstview;
GridAllStore.DataBind();
}
}
將您的代碼更改為:
protected void Page_Load(object sender, EventArgs e)
{
lstview = taview.GetData().ToList();
GridAllStore.DataSource = lstview;
GridAllStore.DataBind();
}
並將您的GridView標記更改為:
<asp:GridView ID="GridAllStore" runat="server" AutoGenerateColumns="True" Width="100%" ViewStateMode="Enabled" />
注意到它現在是AutoGenerateColumns="True"
因為這將顯示數據並生成列。 您可能需要自定義顯示的內容。 要做到這一點,因為你現在還不知道你在做什么,切換到設計視圖,你可以編輯gridview模板。
查看這篇文章,了解一些自定義輸出列和數據的幫助。 http://msdn.microsoft.com/en-us/library/bb288032.aspx
您是否嘗試在設置數據源后立即添加以下行?
GridAllStore.DataBind();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.