- - PR -
GridViewが表示されない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 です。 大変初歩的な質問で申し訳ないのですが、何卒ご教授願います。 | ||||
|
投稿日時: 2006-10-30 05:18
ListBoxに正常に表示されるということはGridViewの問題のようですね。 GridViewのソースを掲示していただけると問題がわかるかも知れません。 ところで、GridViewのDataSourceIDには何も設定していませんよね。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 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 /> <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を配置し、そこからポイント すれば正常に動いているようなので、分離コードから呼び出す際に特別な設定が 必要なのかな?と推測していました。 初歩的なミスだとは思いますが、よろしくお願いいたします。 | ||||
|
投稿日時: 2006-10-30 10:13
もしかすると、
> AutoGenerateColumns="False" GridViewのこの設定が問題かな? | ||||
|
投稿日時: 2006-10-30 10:34
どっとねっとふぁんさん、こんにちは。
回答ありがとうございます。 引用: -------------------------------------------------------------------------------- > AutoGenerateColumns="False" GridViewのこの設定が問題かな? -------------------------------------------------------------------------------- まさにその通りでした! ありがとうございました。>どっとねっとふぁんさん、Accessさん |
1