- PR -

GridViewが表示されない

1
投稿者投稿内容
tdadminx
会議室デビュー日: 2006/10/29
投稿数: 3
投稿日時: 2006-10-29 18:16
はじめて投稿させていただきます。

あるテーブルから取得した情報を細工して表示するために画面上にはGridViewコントロールのみ配置し、プログラム内でDataSetを使用してテーブルデータをGridViewにBindしようとしています。

本やwebに記載されているサンプルを動作させようとしたのですが、画面には何も表示されません。
データが取得できていないのかと思い、GridViewでなく、ListBoxで実験したところ、そちらでは正しく出力されました。

おそらくGridViewに動的にBindする際に設定が必要なプロパティが他にもあるのではないかと思い、過去ログを含め調べてみましたがわかりませんでした。。
(サンプルと全く同じコーディングですし。。。)

コードは以下です。

・App_Code\\Customers.vb
--------------------------------------------------------------------
Public Shared Function getCustomersDataSet() As DataSet
Dim strSQL As String = "SELECT CustomerID, CompanyName FROM Customers"
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("NwindSQLConnectionString").ConnectionString)
Dim da As New SqlDataAdapter(strSQL, con)
Dim ds As DataSet = New DataSet()

da.Fill(ds, "Customers")
Return ds
End Function
--------------------------------------------------------------------

・Default.aspx.vb
--------------------------------------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then

Dim ds As New DataSet

ds = Customers.getCustomersDataSet()
GridView1.DataSource = ds.Tables("Customers")
GridView1.DataBind()

End If
End Sub
--------------------------------------------------------------------


環境は言語: VB バージョン: 2005 プラットフォーム: Windows XP です。

大変初歩的な質問で申し訳ないのですが、何卒ご教授願います。

Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-10-30 05:18
引用:

データが取得できていないのかと思い、GridViewでなく、ListBoxで実験したところ、そちらでは正しく出力されました。


ListBoxに正常に表示されるということはGridViewの問題のようですね。
GridViewのソースを掲示していただけると問題がわかるかも知れません。

ところで、GridViewのDataSourceIDには何も設定していませんよね。

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
tdadminx
会議室デビュー日: 2006/10/29
投稿数: 3
投稿日時: 2006-10-30 07:17

Accessさん、こんにちは。
回答ありがとうございます。

GridViewのDataSourceIDには何も設定していません。

GridViewのソースは以下です。

・Default.aspx
--------------------------------------------------------------------
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
GridViewをDataSetでBindする画面<br />
&nbsp;<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="20">
<PagerStyle BorderColor="SeaGreen" BorderStyle="Solid" />
<HeaderStyle BackColor="DarkGray" BorderColor="Red" />
</asp:GridView>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="次画面へ" />
</form>
</body>
</html>
--------------------------------------------------------------------

画面としては単にGridViewを配置しただけです。
分離コード側からApp_Code配下に配置したデータ取得系ロジックを
呼び出す形にしたいと思っています。

よくあるCustomersのサンプルを持ってきていろいろ実験していたのですが、
サンプルはsqlDataSource等で画面から直接DBアクセスしているものだったため
それを前述の構成にアレンジ(というほどのものでもありませんが。。。)した
ものです。
App_Code\\Customers.vbも画面にObjectDataSourceを配置し、そこからポイント
すれば正常に動いているようなので、分離コードから呼び出す際に特別な設定が
必要なのかな?と推測していました。

初歩的なミスだとは思いますが、よろしくお願いいたします。


どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-10-30 10:13
もしかすると、

> AutoGenerateColumns="False"

GridViewのこの設定が問題かな?
tdadminx
会議室デビュー日: 2006/10/29
投稿数: 3
投稿日時: 2006-10-30 10:34
どっとねっとふぁんさん、こんにちは。
回答ありがとうございます。


引用:
--------------------------------------------------------------------------------

> AutoGenerateColumns="False"

GridViewのこの設定が問題かな?

--------------------------------------------------------------------------------

まさにその通りでした!

ありがとうございました。>どっとねっとふぁんさん、Accessさん



1

スキルアップ/キャリアアップ(JOB@IT)