- PR -

GridViewでEvalを表示させることが出来ない。

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2007-08-02 23:40
msoです。

ASP.NET2.0
C#
でサンプルプログラムを作成しておりますが、
GridViewの扱いが良く分からず悩んでおります。

現在、サンプルソースとして、Defalt.aspxを作成しております。

コード:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="【データをロードさせる】" /><br />
<br />
<asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnDataBinding="GridView1_DataBinding" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" Text="<%# Eval("EmployeeID") %>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</asp:Content>




上記のソースで、
コード:

<asp:Label runat="server" Text="<%# Eval("EmployeeID") %>"></asp:Label>


の部分にサーバー タグが正しく形成されていませんというエラーが表示され、
ビルドが出来ません。

インターネットで調べたところ、このような書き方がされていたのですが、
自分の環境ではうまく出来ません。
何か設定ミスとは思いますが、ご指摘していただけないでしょうか?

よろしくお願いします。

[ メッセージ編集済み 編集者: mso 編集日時 2007-08-02 23:41 ]
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2007-08-02 23:47
msoです。

自己解決しました。

コード:

<asp:Label runat="server" Text="<%# Eval("EmployeeID") %>"></asp:Label>


ではなく、
コード:

<asp:Label runat="server" Text='<%# Eval("EmployeeID") %>'></asp:Label>


でした。

[ メッセージ編集済み 編集者: mso 編集日時 2007-08-02 23:47 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-08-03 20:00
この問題は
Eval("EmployeeID")
のダブルクォーテーションがText属性の終わりだと判断されるために起こるんだと思います。なのでダブルクォーテーションを使わない方法として.aspx.csファイルの中で
protected const string ABCD = "ABCD";
こんな風にして、.aspxファイルに
Eval(ABCD)
こんな風に書いたことがあります。良い方法かどうかは分かりませんが。
1

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