none
FormViewの中にDataListを入れ子にする RRS feed

  • 質問

  • いつもお世話になります。

     

    以前, DataListの中にDataListを入れ子にする方法を質問させていただき(http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4096583&SiteID=7)、

    最終的にSurferOnWwwさんに教えていただいたコードで達成できたのですが、DataListの場合ページングができないので, FormViewの中にDataListを入れ子にする方法を模索しています。

    FormViewの場合はGridviewのRowやDataListのItemに相当するものがないようで、以下のフィルタをかける部分をFormViewの場合はどう書けばよいのかわからず途方にくれています。
    FormViewの時はどう書けばよいのか教えていただけないでしょうか?


    DataListの場合

    Protected Sub DataList_All_Summary_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList_All_Summary.ItemDataBound

            If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
                Dim s As SqlDataSource = DirectCast(e.Item.FindControl("SqlDataSource_All_Role"), SqlDataSource)
                s.FilterParameters(0).DefaultValue = DirectCast(DirectCast(e.Item.DataItem, DataRowView).Row("UploadedDate"), Date)
            End If
        End Sub


    GridViewの場合

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim s As SqlDataSource = CType(e.Row.FindControl("SqlDataSource2"), SqlDataSource)
        s.FilterParameters(0).DefaultValue = e.Row.Cells(0).Text
    End If
    End Sub


    よろしくお願いします。

    2009年1月19日 1:39

回答

  •  tosaito さんからの引用

    FormViewの中にDataListを入れ子にする方法を模索しています。

    FormViewの場合はGridviewのRowやDataListのItemに相当するものがないようで、以下のフィルタをかける部分をFormViewの場合はどう書けばよいのかわからず途方にくれています。
    FormViewの時はどう書けばよいのか教えていただけないでしょうか?

     

    先の DataList/DataList の入れ子の例では、一旦 Orders テーブルか
    ら全レコードを取得してキャッシングし、キャッシングしたデータから条件

    に合うレコードを抽出するという手段を取っていました。

     

    その理由は、何度も SQL Server との間で SELECT クエリの発行/デ
    ータの取得を行うのを避けて、一度で済ませるためです。

     

    FormView/DataList の入れ子に変更し、FormView をページングする場
    合、ページングのたびに SELECT クエリの発行/データの取得が行わ
    れるので、キャッシングする意味はないはずです。

     

    SqlDataSource.SelectCommand に WHERE 句を追加して抽出する

    ようにしてはいかがですか? 先のチュートリアルの例では以下のように

    なります。

     

    Code Snippet

    <%@ Page Language="C#" %>

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

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:SqlDataSource ID="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:Northwind %>"
                SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]">
            </asp:SqlDataSource>
            <asp:FormView ID="FormView1"
                runat="server"
                DataSourceID="SqlDataSource1"
                DataKeyNames="CustomerID"
                AllowPaging="True">
                <ItemTemplate>
                    CustomerID:
                    <asp:Label ID="CustomerIDLabel" runat="server"
                        Text='<%# Eval("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:Label ID="CompanyNameLabel" runat="server"
                        Text='<%# Bind("CompanyName") %>' />
                    <hr />
                    <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                        ConnectionString="<%$ ConnectionStrings:Northwind %>"
                        SelectCommand="SELECT [OrderID], [CustomerID], [OrderDate] FROM [Orders] WHERE ([CustomerID] = @CustomerID)">
                        <SelectParameters>
                            <asp:ControlParameter
                                ControlID="CustomerIDLabel"
                                Name="CustomerID"
                                PropertyName="Text"
                                Type="String" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                    <asp:DataList ID="DataList1"
                        runat="server"
                        DataKeyField="OrderID"
                        DataSourceID="SqlDataSource2">
                        <ItemTemplate>
                            OrderID: <asp:Label ID="OrderIDLabel" runat="server"
                                Text='<%# Eval("OrderID") %>'></asp:Label>
                            <br />
                            OrderDate: <asp:Label ID="OrderDateLabel" runat="server"
                                Text='<%# Eval("OrderDate") %>'></asp:Label>
                            <br />
                            <br />
                        </ItemTemplate>
                    </asp:DataList>
                </ItemTemplate>
            </asp:FormView>
        </div>
        </form>
    </body>
    </html>

     

     

    2009年1月19日 14:35
  • コードを丸投げされても詳しく見る時間がないですし、「どこが悪いの
    か」を文章で説明するのはさらに大変ですので、それは勘弁してくださ
    い。

     

    その代わりにサンプルを作ってアップしておきますので、ご自分のコー
    ドと比べてみてください。

     

    先の DataList の入れ子のチュートリアルのように表示するだけの必要
    最低限のコードしか考えてませんので、AlternatingItemTemplate など
    が必要なら追加してください。

     

    なお、DB の Delete, Insert, Update が必要な場合、対象とするフィ
    ールドにもよりますが、単純に XxxxxTemplate を追加してというやり
    方ではうまくいかないはずで、根本的にやり方を考え直す必要があると
    思います。

     

    Code Snippet

    <%@ Page Language="C#" %>

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

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server"
                ConnectionString="<%$ ConnectionStrings:Northwind %>"
                SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]">
            </asp:SqlDataSource>
            <asp:ListView ID="ListView1" runat="server" DataKeyNames="CustomerID"
                DataSourceID="SqlDataSource1">
                <ItemTemplate>
                    <tr style="">
                        <td>
                            <asp:Label ID="CustomerIDLabel" runat="server"
                                Text='<%# Eval("CustomerID") %>' />
                        </td>
                        <td>
                            <asp:Label ID="CompanyNameLabel" runat="server"
                                Text='<%# Eval("CompanyName") %>' />
                        </td>
                        <td>
                            <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                                ConnectionString="<%$ ConnectionStrings:Northwind %>"
                                SelectCommand="SELECT [OrderID], [CustomerID], [OrderDate] FROM [Orders] WHERE ([CustomerID] = @CustomerID)">
                                <SelectParameters>
                                    <asp:ControlParameter
                                        ControlID="CustomerIDLabel"
                                        Name="CustomerID"
                                        PropertyName="Text"
                                        Type="String" />
                                </SelectParameters>
                            </asp:SqlDataSource>
                            <asp:DataList ID="DataList1"
                                runat="server"
                                DataKeyField="OrderID"
                                DataSourceID="SqlDataSource2">
                                <ItemTemplate>
                                    OrderID: <asp:Label ID="OrderIDLabel" runat="server"
                                        Text='<%# Eval("OrderID") %>'></asp:Label>
                                    <br />
                                    OrderDate: <asp:Label ID="OrderDateLabel" runat="server"
                                        Text='<%# Eval("OrderDate") %>'></asp:Label>
                                    <br />
                                </ItemTemplate>
                            </asp:DataList>
                        </td>
                    </tr>
                </ItemTemplate>

                <EmptyDataTemplate>
                    <table runat="server" style="">
                        <tr>
                            <td>
                                データは返されませんでした。</td>
                        </tr>
                    </table>
                </EmptyDataTemplate>

                <LayoutTemplate>
                    <table runat="server">
                        <tr runat="server">
                            <td runat="server">
                                <table ID="itemPlaceholderContainer" runat="server" border="0" style="">
                                    <tr runat="server" style="">
                                        <th runat="server">
                                            CustomerID</th>
                                        <th runat="server">
                                            CompanyName</th>
                                        <th runat="server">
                                            Orders</th>
                                    </tr>
                                    <tr ID="itemPlaceholder" runat="server">
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <tr runat="server">
                            <td runat="server" style="">
                                <asp:DataPager ID="DataPager1" runat="server">
                                    <Fields>
                                        <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
                                            ShowLastPageButton="True" />
                                    </Fields>
                                </asp:DataPager>
                            </td>
                        </tr>
                    </table>
                </LayoutTemplate>

            </asp:ListView>
        </div>
        </form>
    </body>
    </html>

     

     

    ListView では気に入らないから、GridView に変えたい(または
    DataList にページングを実装したい)ので、やり方を教えてくれ
    というのはナシにしてくださいね。
    2009年1月20日 14:09

すべての返信

  •  tosaito さんからの引用

    FormViewの中にDataListを入れ子にする方法を模索しています。

    FormViewの場合はGridviewのRowやDataListのItemに相当するものがないようで、以下のフィルタをかける部分をFormViewの場合はどう書けばよいのかわからず途方にくれています。
    FormViewの時はどう書けばよいのか教えていただけないでしょうか?

     

    先の DataList/DataList の入れ子の例では、一旦 Orders テーブルか
    ら全レコードを取得してキャッシングし、キャッシングしたデータから条件

    に合うレコードを抽出するという手段を取っていました。

     

    その理由は、何度も SQL Server との間で SELECT クエリの発行/デ
    ータの取得を行うのを避けて、一度で済ませるためです。

     

    FormView/DataList の入れ子に変更し、FormView をページングする場
    合、ページングのたびに SELECT クエリの発行/データの取得が行わ
    れるので、キャッシングする意味はないはずです。

     

    SqlDataSource.SelectCommand に WHERE 句を追加して抽出する

    ようにしてはいかがですか? 先のチュートリアルの例では以下のように

    なります。

     

    Code Snippet

    <%@ Page Language="C#" %>

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

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:SqlDataSource ID="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:Northwind %>"
                SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]">
            </asp:SqlDataSource>
            <asp:FormView ID="FormView1"
                runat="server"
                DataSourceID="SqlDataSource1"
                DataKeyNames="CustomerID"
                AllowPaging="True">
                <ItemTemplate>
                    CustomerID:
                    <asp:Label ID="CustomerIDLabel" runat="server"
                        Text='<%# Eval("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:Label ID="CompanyNameLabel" runat="server"
                        Text='<%# Bind("CompanyName") %>' />
                    <hr />
                    <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                        ConnectionString="<%$ ConnectionStrings:Northwind %>"
                        SelectCommand="SELECT [OrderID], [CustomerID], [OrderDate] FROM [Orders] WHERE ([CustomerID] = @CustomerID)">
                        <SelectParameters>
                            <asp:ControlParameter
                                ControlID="CustomerIDLabel"
                                Name="CustomerID"
                                PropertyName="Text"
                                Type="String" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                    <asp:DataList ID="DataList1"
                        runat="server"
                        DataKeyField="OrderID"
                        DataSourceID="SqlDataSource2">
                        <ItemTemplate>
                            OrderID: <asp:Label ID="OrderIDLabel" runat="server"
                                Text='<%# Eval("OrderID") %>'></asp:Label>
                            <br />
                            OrderDate: <asp:Label ID="OrderDateLabel" runat="server"
                                Text='<%# Eval("OrderDate") %>'></asp:Label>
                            <br />
                            <br />
                        </ItemTemplate>
                    </asp:DataList>
                </ItemTemplate>
            </asp:FormView>
        </div>
        </form>
    </body>
    </html>

     

     

    2009年1月19日 14:35
  •  

    SurferOnWwwさま

    いつもお世話になります。

     

    ありがとうございます。早速試したところ期待通りの結果なりました。

    ただ私の認識不足だったのですが、FormViewだと1ページに1レコードしか表示されないので、ListViewでも同じように試したのですが、なぜか

    Could not find control 'CustomerIDLabel' in ControlParameter 'CustomerID'.

    というエラーになってしまいます。

     

    最初の質問と違ってきてしまいますが、以下のNorthwindを使用した例でどこが悪いのか教えていただけないでしょうか?

     

    宜しくお願いします。

     

    <%@ Page Language="VB" %>

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

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>無題のページ</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
            <asp:ListView ID="ListView1" runat="server" DataKeyNames="CustomerID"
                DataSourceID="SqlDataSource1">
                <ItemTemplate>
                    <span style="">CustomerID:
                    <asp:Label ID="CustomerIDLabel" runat="server"
                        Text='<%# Eval("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:Label ID="CompanyNameLabel" runat="server"
                        Text='<%# Eval("CompanyName") %>' />
                    <br />
                    </span>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <span style="">CustomerID:
                    <asp:Label ID="CustomerIDLabel" runat="server"
                        Text='<%# Eval("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:Label ID="CompanyNameLabel" runat="server"
                        Text='<%# Eval("CompanyName") %>' />
                    <br />
                    <br />
                    </span>
                </AlternatingItemTemplate>
                <EmptyDataTemplate>
                    <span>データは返されませんでした。</span>
                </EmptyDataTemplate>
                <InsertItemTemplate>
                    <span style="">CustomerID:
                    <asp:TextBox ID="CustomerIDTextBox" runat="server"
                        Text='<%# Bind("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:TextBox ID="CompanyNameTextBox" runat="server"
                        Text='<%# Bind("CompanyName") %>' />
                    <br />
                    <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="挿入" />
                    <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="クリア" />
                    <br />
                    <br />
                    </span>
                </InsertItemTemplate>
                <LayoutTemplate>
                    <div ID="itemPlaceholderContainer" runat="server" style="">
                        <span ID="itemPlaceholder" runat="server" />
                        <aspBig SmileataList ID="DataList1" runat="server" DataKeyField="OrderID"
                            DataSourceID="SqlDataSource2">
                            <ItemTemplate>
                                CustomerID:
                                <asp:Label ID="CustomerIDLabel" runat="server"
                                    Text='<%# Eval("CustomerID") %>' />
                                <br />
                                OrderID:
                                <asp:Label ID="OrderIDLabel" runat="server" Text='<%# Eval("OrderID") %>' />
                                <br />
                                <br />
                            </ItemTemplate>
                        </aspBig SmileataList>
                        <aspTongue TiedqlDataSource ID="SqlDataSource2" runat="server"
                            ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                            SelectCommand="SELECT [CustomerID], [OrderID] FROM [Orders] WHERE ([CustomerID] = @CustomerID)">
                            <SelectParameters>
                                <asp:ControlParameter ControlID="CustomerIDLabel" Name="CustomerID"
                                    PropertyName="Text" Type="String" />
                            </SelectParameters>

                        </aspTongue TiedqlDataSource>
                        <br />
                        </span>
                    </div>
                    <div style="">
                        <aspBig SmileataPager ID="DataPager1" runat="server">
                            <Fields>
                                <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
                                    ShowNextPageButton="False" ShowPreviousPageButton="False" />
                                <asp:NumericPagerField />
                                <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True"
                                    ShowNextPageButton="False" ShowPreviousPageButton="False" />
                            </Fields>
                        </aspBig SmileataPager>
                    </div>
                </LayoutTemplate>
                <EditItemTemplate>
                    <span style="">CustomerID:
                    <asp:Label ID="CustomerIDLabel1" runat="server"
                        Text='<%# Eval("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:TextBox ID="CompanyNameTextBox" runat="server"
                        Text='<%# Bind("CompanyName") %>' />
                    <br />
                    <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="更新" />
                    <asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
                        Text="キャンセル" />
                    <br />
                    <br />
                    </span>
                </EditItemTemplate>
                <SelectedItemTemplate>
                    <span style="">CustomerID:
                    <asp:Label ID="CustomerIDLabel" runat="server"
                        Text='<%# Eval("CustomerID") %>' />
                    <br />
                    CompanyName:
                    <asp:Label ID="CompanyNameLabel" runat="server"
                        Text='<%# Eval("CompanyName") %>' />
                    <br />
                    <br />
                    </span>
                </SelectedItemTemplate>
            </asp:ListView>
            <aspTongue TiedqlDataSource ID="SqlDataSource1" runat="server"
                ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]">
            </aspTongue TiedqlDataSource>
       
        </div>
        </form>
    </body>
    </html>

    2009年1月20日 2:50
  • コードを丸投げされても詳しく見る時間がないですし、「どこが悪いの
    か」を文章で説明するのはさらに大変ですので、それは勘弁してくださ
    い。

     

    その代わりにサンプルを作ってアップしておきますので、ご自分のコー
    ドと比べてみてください。

     

    先の DataList の入れ子のチュートリアルのように表示するだけの必要
    最低限のコードしか考えてませんので、AlternatingItemTemplate など
    が必要なら追加してください。

     

    なお、DB の Delete, Insert, Update が必要な場合、対象とするフィ
    ールドにもよりますが、単純に XxxxxTemplate を追加してというやり
    方ではうまくいかないはずで、根本的にやり方を考え直す必要があると
    思います。

     

    Code Snippet

    <%@ Page Language="C#" %>

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

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server"
                ConnectionString="<%$ ConnectionStrings:Northwind %>"
                SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]">
            </asp:SqlDataSource>
            <asp:ListView ID="ListView1" runat="server" DataKeyNames="CustomerID"
                DataSourceID="SqlDataSource1">
                <ItemTemplate>
                    <tr style="">
                        <td>
                            <asp:Label ID="CustomerIDLabel" runat="server"
                                Text='<%# Eval("CustomerID") %>' />
                        </td>
                        <td>
                            <asp:Label ID="CompanyNameLabel" runat="server"
                                Text='<%# Eval("CompanyName") %>' />
                        </td>
                        <td>
                            <asp:SqlDataSource ID="SqlDataSource2" runat="server"
                                ConnectionString="<%$ ConnectionStrings:Northwind %>"
                                SelectCommand="SELECT [OrderID], [CustomerID], [OrderDate] FROM [Orders] WHERE ([CustomerID] = @CustomerID)">
                                <SelectParameters>
                                    <asp:ControlParameter
                                        ControlID="CustomerIDLabel"
                                        Name="CustomerID"
                                        PropertyName="Text"
                                        Type="String" />
                                </SelectParameters>
                            </asp:SqlDataSource>
                            <asp:DataList ID="DataList1"
                                runat="server"
                                DataKeyField="OrderID"
                                DataSourceID="SqlDataSource2">
                                <ItemTemplate>
                                    OrderID: <asp:Label ID="OrderIDLabel" runat="server"
                                        Text='<%# Eval("OrderID") %>'></asp:Label>
                                    <br />
                                    OrderDate: <asp:Label ID="OrderDateLabel" runat="server"
                                        Text='<%# Eval("OrderDate") %>'></asp:Label>
                                    <br />
                                </ItemTemplate>
                            </asp:DataList>
                        </td>
                    </tr>
                </ItemTemplate>

                <EmptyDataTemplate>
                    <table runat="server" style="">
                        <tr>
                            <td>
                                データは返されませんでした。</td>
                        </tr>
                    </table>
                </EmptyDataTemplate>

                <LayoutTemplate>
                    <table runat="server">
                        <tr runat="server">
                            <td runat="server">
                                <table ID="itemPlaceholderContainer" runat="server" border="0" style="">
                                    <tr runat="server" style="">
                                        <th runat="server">
                                            CustomerID</th>
                                        <th runat="server">
                                            CompanyName</th>
                                        <th runat="server">
                                            Orders</th>
                                    </tr>
                                    <tr ID="itemPlaceholder" runat="server">
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <tr runat="server">
                            <td runat="server" style="">
                                <asp:DataPager ID="DataPager1" runat="server">
                                    <Fields>
                                        <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
                                            ShowLastPageButton="True" />
                                    </Fields>
                                </asp:DataPager>
                            </td>
                        </tr>
                    </table>
                </LayoutTemplate>

            </asp:ListView>
        </div>
        </form>
    </body>
    </html>

     

     

    ListView では気に入らないから、GridView に変えたい(または
    DataList にページングを実装したい)ので、やり方を教えてくれ
    というのはナシにしてくださいね。
    2009年1月20日 14:09
  •  

    SurferOnWwwさま

    本当に申し訳ありません。あらかじめ各コントロールの特徴を確認してから質問するべきでした。朝から試しているのですが、どうやらListViewの構成で初期設定のグリッドだと問題ないのですが、他の箇条書きやフロー等を選ぶとこのエラーになってしまうようです。違いを一行一行比較してからクローズさせていただきます。

     

    よろしくおねがいします。

    2009年1月21日 1:16
  •  

    SurferOnWwwさま

    いろいろと比較して確認したところなんとか無事に結果が表示されるようになりました。

    DataListを追加してからListViewのレイアウトを変えるとListViewのItemTemplateの外にDataListが押し出されるようで、

    それを元に戻したところうまくいきました。

     

    本当にありがとうございました。

     

    よろしくおねがいします。

     

    2009年1月21日 1:33