8

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; 
    }
}
4

3 に答える 3

19

問題は、表示する列を定義していないことだと思います。AutoGenerateColumnsfalseに設定する場合は、列を明示的に定義する必要があります。

基本がAutoGenerateColumnstrue に設定されていることを確認するには、次のようにします。

<asp:GridView ID="GridAllStore"  runat="server" AutoGenerateColumns="true" Width="100%"  ViewStateMode="Enabled">

AutoGenerateColumnstrue に設定すると、データソースが割り当てられて呼び出さDataBind()れ、データが表示されるようになります。データの表示を開始したら、表示する特定の列を定義できます。

最初のページの読み込み時にグリッドをバインドするだけでよいため、次の!Page.IsPostBack条件を利用します。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        GridAllStore.DataSource = lstview;
        GridAllStore.DataBind();
    }
}
于 2012-04-23T22:04:17.777 に答える
2

コードを次のように変更します。

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"により、データが表示され、列が生成されるようになりました。ただし、表示される内容をカスタマイズする必要がある場合があります。これを行うには、今何をしているのかよくわからないので、デザイン ビューに切り替えて、グリッドビュー テンプレートを編集できます。

出力する列とデータのカスタマイズについては、この投稿をご覧ください。http://msdn.microsoft.com/en-us/library/bb288032.aspx

于 2012-04-23T22:03:33.593 に答える
1

Datasource を設定した直後に次の行を追加しようとしましたか?

GridAllStore.DataBind();
于 2012-04-23T21:50:22.660 に答える