none
ページは表示できません とでます。 RRS feed

  • 質問

  • こんにちわ。

     

    また教えてください。

     

    DetailsViewを表示するページを作成しているのですが、

    ローカルでテストをしていまして、実行すると

    そのDetailsViewを参照するページは表示されます。

     

    編集ボタンを押して、編集モードでも表示されます。

    修正して更新ボタンを押すと、「ページが表示できません」という画面になります。

     

    なぜこのページが出るのかがよくわかりません。

     

    IISを削除して入れ直してみたりしましたが、変わりません。

    ファイアウォールは無効にしてあります。

     

    ブレークポイントを設定してみましたが、

     

    Protected Sub DetailsView_ItemUpdating

     

    の中に入る前に、ページが表示できませんの表示がされているみたいです。

     

    Visual Studio2005 のVBです。

     

     

    どなたかわかる方いらっしゃいましたらよろしくお願いします。

    2008年7月8日 1:19

回答

  • 忘れてました。すみません。IEで以下を実行してエラーメッセージが表示されるか確かめてみて下さい。

     

    ツール -> インターネットオプション -> 詳細設定 -> ブラウズ の「HTTP エラーメッセージを簡易表示する」のチェックを外す

     

    エラーメッセージが表示されても解決できなければ、以下の部分のコードをご提示下さい。

    .aspxのDetailsViewとSqlDataSourceの部分。また、更新時に何かコードを書かれていたらその部分も見せて下さい。

    特に問題がないようでしたら、.aspxおよびコードの全体でもかまいません。

    2008年7月8日 3:22
    モデレータ
  • 以下のスレッドの続きですよね?

    http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3451265&SiteID=7
    DetailsViewに別テーブルからのデータを選択できるようにし、それを元のテーブルに表示するようにしたい

     

    そのときは、

     

    > Where句の追加で、Querystringではなく、ソース noneに、番号の値をDetailsView
    > ごとにそれぞれ、1,2,3,、、と設定していったら、今のところ3つのDetailsView
    > にそれぞれ同じ日付の番号1,2,3のデータがそれぞれ表示されるようになりました!
    >
    > そして修正更新もできるようになりました!!
    >
    > (でもこの設定は今まで試した中でやっていたのですが、なぜか今できるようにな
    > りました。。。)
    >
    > そして、Protected Sub dv1_ItemUpdatingの中に
    >
    > e.NewValues("seihin") = DirectCast(dv1.FindControl("ddl1"), DropDownList).SelectedValue
    >
    > これを設定しなくても修正更新ができているみたいです!
    > 一つ一つのDropdownlistを設定しないといけないかと思っていじっていたのですが、
    > 消してしまって大丈夫みたいです!!

     

    ということで、DropDownList を使うのはやめて、さらにコードを見ると前回問題が
    解決できなかった楽観的同時実行制御を使うのもやめたようですが、そのコードが
    残ってしまっているようです。

     

    それが原因かどうか分かりませんが、まずは不要なものは削除(というより、
    SqlDataSource と GridView を、ウィザードベースでゼロから作り直す)して、

    それで試して見てはいかがですか?

    2008年7月8日 7:37
  • すみません、間違えました。

     

    誤: SqlDataSource と GridView を、ウィザードベースでゼロから作り直す)して、

                                     ↓

    正: SqlDataSource と DetailsView を、ウィザードベースでゼロから作り直す)して、

     

    2008年7月8日 7:41
  • SuferOnWwwさん

     

    ありがとうございます。

     

     

    >以下のスレッドの続きですよね?

     

    はい、そうです。

     

     

    色々いじって、修正したり、削除したり、作り直したりしていましたら、なんとかページが表示できませんというページが出てこず、

    ちゃんと次のページが表示されるようになりました!

     

    いじりすぎたせいで、どれが原因かがわからなくなってしまったのですが、(すみません。。)

    ちゃんと思い通りに更新されているわけではないのですが(苦笑)、次のページが出てきました。

     

     

    trapemiyaさん、お手数おかけして申し訳ございません。

    いつもありがとうございます。

     

    これに懲りずにまたどうぞよろしくお願いします。

     

     

    SuferOnWwwさん、ありがとうございました。

    2008年7月8日 7:45

すべての返信

  • 全スレの内容から判断して、更新に必要な列の値が消えてしまっているからではないでしょうか?

    2008年7月8日 1:34
    モデレータ
  • trapemiyaさん

     

    ありがとうございます。

     

    更新に必要な列の値というのは、主キー列のことでしょうか?

     

    よくわかっていなくてすみません。。。

     

    試しに全項目にデータを入力して更新してみましたら同じ結果でした。

     

    どこを見ればいいのか教えて頂いてもよろしいでしょうか?

     

    よろしくお願いします。

    2008年7月8日 1:58
  •  ソルピー さんからの引用

    更新に必要な列の値というのは、主キー列のことでしょうか?

     

    主キー列のことではありません。全スレの内容から判断するに、DetailsViewからコードで列を削除されていれば、その列の値をSqlDataSourceに渡すことができず、そこでエラーになっているのかと想像しました。前提が間違っていたらごめんなさい。

     

     ソルピー さんからの引用

    試しに全項目にデータを入力して更新してみましたら同じ結果でした。

     

    どこを見ればいいのか教えて頂いてもよろしいでしょうか?

     

    もし、列を削除されていなければ話が変わってきますが、もし削除されているのでしたら、SqlDataSourceのUpdate文に渡しているパラメータ部分を確認してみて下さい。パラメータに値を渡すのに必要な列を削除されていませんか?

     

    #私の前の発言はまだ回答済みにしない方がいいんじゃないかと思いますよ。まだ、原因がはっきりわかっていませんので。

    2008年7月8日 2:13
    モデレータ
  •  trapemiyaさん

     

    ありがとうございます。

     

    DetailsViewでNULL項目は非表示にするという設定をしています。

    それは削除ではなく、参照モードでDetailsViewに表示するときに非表示にするという用にしているのですが、

    これが問題あるのでしょうか?

     

    編集モードではNULL項目も表示するようにしてあります。

     

     

    SqlDataSourceのUpdate文に渡しているパラメータ部分は、主キー以外の全項目がSETされ、Where句で主キーがセットされています。

     

    よろしくお願いします。

    2008年7月8日 2:27
  • 問題を絞り込むため、一度、非表示を解除してみて下さい。

    それでもダメな場合は、再現するコードをご提示いただけませんか?

    2008年7月8日 2:54
    モデレータ
  • trapemiyaさん

     

    ありがとうございます。

     

     

    はい、非表示部分もコメントアウトして試したりしていましたが、ダメでした。。

     

     

    再現するコードはどの部分を提示すればよろしいでしょうか?
    2008年7月8日 3:01
  • 忘れてました。すみません。IEで以下を実行してエラーメッセージが表示されるか確かめてみて下さい。

     

    ツール -> インターネットオプション -> 詳細設定 -> ブラウズ の「HTTP エラーメッセージを簡易表示する」のチェックを外す

     

    エラーメッセージが表示されても解決できなければ、以下の部分のコードをご提示下さい。

    .aspxのDetailsViewとSqlDataSourceの部分。また、更新時に何かコードを書かれていたらその部分も見せて下さい。

    特に問題がないようでしたら、.aspxおよびコードの全体でもかまいません。

    2008年7月8日 3:22
    モデレータ
  • trapemiyaさん

     

    ありがとうございます。

     

    「HTTP エラーメッセージを簡易表示する」のチェックを外しても同じエラーで、ただページが表示できませんとでるだけでした。

     

    コードです。足りますでしょうか?

     

    よろしくお願いします。

     

     

     

    <aspBig SmileetailsView ID="dv1" runat="server" AutoGenerateRows="False" CellPadding="4"
                        DataKeyNames="nonyubi,sharyo,no" DataSourceID="sds1" ForeColor="#333333" GridLines="None"
                        Height="50px" Width="224px" onitemupdating="dv1_ItemUpdating" OnDataBound="dv1_DataBound" OnItemDeleted="dv1_ItemDeleted" OnItemInserted="dv1_ItemInserted" OnItemInserting="dv1_ItemInserting" OnItemUpdated="dv1_ItemUpdated">
                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
                        <EditRowStyle BackColor="#FFFFC0" />
                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                        <Fields>
                            <asp:BoundField DataField="gyosha" HeaderText="業者名" SortExpression="gyosha" />
                            <asp:BoundField DataField="genba" HeaderText="現場名" SortExpression="genba" />
                            <asp:BoundField DataField="namae" HeaderText="担当者名" SortExpression="namae" />
                            <asp:BoundField DataField="tel" HeaderText="TEL" SortExpression="tel" />
                            <asp:BoundField DataField="bikou" HeaderText="備考" SortExpression="bikou" />
                            <asp:CheckBoxField DataField="sumi" HeaderText="済" SortExpression="sumi" />
                            <asp:BoundField DataField="sakuseibi" HeaderText="作成日" ReadOnly="True" SortExpression="sakuseibi" />
                            <asp:BoundField DataField="kosinbi" HeaderText="更新日" ReadOnly="True" SortExpression="kosinbi" />
                            <asp:CommandField ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True"
                                ShowHeader="True" />
                            <asp:BoundField DataField="juryokei" HeaderText="重量合計" SortExpression="juryokei" ReadOnly="True" />
                            <asp:TemplateField HeaderText="製品名1" SortExpression="seihin1">
                                <EditItemTemplate>
                                    <aspBig SmileropDownList ID="ddl1" runat="server" DataSourceID="sds1seihin" DataTextField="hname"
                                        DataValueField="hname" SelectedValue='<%# Bind("seihin1") %>'>
                                    </aspBig SmileropDownList>
                                    <aspTongue TiedqlDataSource ID="sds1seihin" runat="server" ConnectionString="<%$ ConnectionStrings:MyDB %>"
                                        SelectCommand="SELECT [hname] FROM [seihin]">
                                    </aspTongue TiedqlDataSource>
                                </EditItemTemplate>
                                <InsertItemTemplate>
                                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("seihin1") %>'></asp:TextBox>
                                </InsertItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("seihin1") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="su1" HeaderText="数量1" SortExpression="su1" />
                            <asp:BoundField DataField="juryo1" HeaderText="重量1" SortExpression="juryo1" />
                            <asp:BoundField DataField="seihin2" HeaderText="製品2" SortExpression="seihin2" />
                            <asp:BoundField DataField="juryo2" HeaderText="重量2" SortExpression="juryo2" />
                            <asp:BoundField DataField="su2" HeaderText="数2" SortExpression="su2" />
                            <asp:BoundField DataField="seihin3" HeaderText="製品3" SortExpression="seihin3" />
                            <asp:BoundField DataField="juryo3" HeaderText="重量3" SortExpression="juryo3" />
                            <asp:BoundField DataField="su3" HeaderText="数3" SortExpression="su3" />
                        </Fields>
                        <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                    </aspBig SmileetailsView>

     

     

     

     

    <aspTongue TiedqlDataSource ID="sds1" runat="server"
                        ConnectionString="<%$ ConnectionStrings:MyDB %>"
                        DeleteCommand="DELETE FROM [yotei] WHERE [nonyubi] = @original_nonyubi AND [sharyo] = @original_sharyo AND [no] = @original_no"
                        InsertCommand="INSERT INTO [yotei] ([nonyubi], [sharyo], [no], [gyosha], [genba], [namae], [tel], [sumi], [bikou], [sakuseibi], [kosinbi], [juryokei], [seihin1], [juryo1], [su1], [seihin2], [juryo2], [su2], [seihin3], [juryo3], [su3]) VALUES (@nonyubi, @sharyo, @no, @gyosha, @genba, @namae, @tel, @sumi, @bikou, @sakuseibi, @kosinbi, @juryokei, @seihin1, @juryo1, @su1, @seihin2, @juryo2, @su2, @seihin3, @juryo3, @su3)"
                        OldValuesParameterFormatString="original_{0}"
                        SelectCommand="SELECT * FROM [yotei] WHERE (([nonyubi] = @nonyubi) AND ([no] = @no) AND ([sharyo] = @sharyo))"
                        UpdateCommand="UPDATE [yotei] SET [gyosha] = @gyosha, [genba] = @genba, [namae] = @namae, [tel] = @tel, [sumi] = @sumi, [bikou] = @bikou, [sakuseibi] = @sakuseibi, [kosinbi] = @kosinbi, [juryokei] = @juryokei, [seihin1] = @seihin1, [juryo1] = @juryo1, [su1] = @su1, [seihin2] = @seihin2, [juryo2] = @juryo2, [su2] = @su2, [seihin3] = @seihin3, [juryo3] = @juryo3, [su3] = @su3 WHERE [nonyubi] = @original_nonyubi AND [sharyo] = @original_sharyo AND [no] = @original_no">

                        <DeleteParameters>
                            <aspStick out tonguearameter Name="original_nonyubi" Type="DateTime" />
                            <aspStick out tonguearameter Name="original_sharyo" Type="String" />
                            <aspStick out tonguearameter Name="original_no" Type="Byte" />
                        </DeleteParameters>
                        <UpdateParameters>
                            <aspStick out tonguearameter Name="gyosha" Type="String" />
                            <aspStick out tonguearameter Name="genba" Type="String" />
                            <aspStick out tonguearameter Name="namae" Type="String" />
                            <aspStick out tonguearameter Name="tel" Type="String" />
                            <aspStick out tonguearameter Name="sumi" Type="Boolean" />
                            <aspStick out tonguearameter Name="bikou" Type="String" />
                            <aspStick out tonguearameter Name="sakuseibi" Type="DateTime" />
                            <aspStick out tonguearameter Name="kosinbi" Type="DateTime" />
                            <aspStick out tonguearameter Name="juryokei" Type="Int32" />
                            <aspStick out tonguearameter Name="seihin1" Type="String" />
                            <aspStick out tonguearameter Name="juryo1" Type="Int32" />
                            <aspStick out tonguearameter Name="su1" Type="Int32" />
                            <aspStick out tonguearameter Name="seihin2" Type="String" />
                            <aspStick out tonguearameter Name="juryo2" Type="Int32" />
                            <aspStick out tonguearameter Name="su2" Type="Int32" />
                            <aspStick out tonguearameter Name="seihin3" Type="String" />
                            <aspStick out tonguearameter Name="juryo3" Type="Int32" />
                            <aspStick out tonguearameter Name="su3" Type="Int32" />
                          </UpdateParameters>
                        <SelectParameters>
                            <asp:QueryStringParameter Name="nonyubi" QueryStringField="nonyubi" Type="DateTime" />
                            <aspStick out tonguearameter DefaultValue="1" Name="no" Type="Byte" />
                            <aspStick out tonguearameter DefaultValue="202" Name="sharyo" Type="String" />
                        </SelectParameters>
                        <InsertParameters>
                            <aspStick out tonguearameter Name="nonyubi" Type="DateTime" />
                            <aspStick out tonguearameter Name="sharyo" Type="String" />
                            <aspStick out tonguearameter Name="no" Type="Byte" />
                            <aspStick out tonguearameter Name="gyosha" Type="String" />
                            <aspStick out tonguearameter Name="genba" Type="String" />
                            <aspStick out tonguearameter Name="namae" Type="String" />
                            <aspStick out tonguearameter Name="tel" Type="String" />
                            <aspStick out tonguearameter Name="sumi" Type="Boolean" />
                            <aspStick out tonguearameter Name="bikou" Type="String" />
                            <aspStick out tonguearameter Name="sakuseibi" Type="DateTime" />
                            <aspStick out tonguearameter Name="kosinbi" Type="DateTime" />
                            <aspStick out tonguearameter Name="juryokei" Type="Int32" />
                            <aspStick out tonguearameter Name="seihin1" Type="String" />
                            <aspStick out tonguearameter Name="juryo1" Type="Int32" />
                            <aspStick out tonguearameter Name="su1" Type="Int32" />
                            <aspStick out tonguearameter Name="seihin2" Type="String" />
                            <aspStick out tonguearameter Name="juryo2" Type="Int32" />
                            <aspStick out tonguearameter Name="su2" Type="Int32" />
                            <aspStick out tonguearameter Name="seihin3" Type="String" />
                            <aspStick out tonguearameter Name="juryo3" Type="Int32" />
                            <aspStick out tonguearameter Name="su3" Type="Int32" />
                        </InsertParameters>
                    </aspTongue TiedqlDataSource>

     

     

     

     

     

    Protected Sub dv1_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdateEventArgs)
            If Not Page.IsValid Then
                e.Cancel = True
            End IF
            
            e.NewValues("juryokei") = e.NewValues("juryo1") * e.NewValues("su1")  '製品重量合計をいれる
           
         End Sub

    2008年7月8日 4:18
  • 以下のスレッドの続きですよね?

    http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3451265&SiteID=7
    DetailsViewに別テーブルからのデータを選択できるようにし、それを元のテーブルに表示するようにしたい

     

    そのときは、

     

    > Where句の追加で、Querystringではなく、ソース noneに、番号の値をDetailsView
    > ごとにそれぞれ、1,2,3,、、と設定していったら、今のところ3つのDetailsView
    > にそれぞれ同じ日付の番号1,2,3のデータがそれぞれ表示されるようになりました!
    >
    > そして修正更新もできるようになりました!!
    >
    > (でもこの設定は今まで試した中でやっていたのですが、なぜか今できるようにな
    > りました。。。)
    >
    > そして、Protected Sub dv1_ItemUpdatingの中に
    >
    > e.NewValues("seihin") = DirectCast(dv1.FindControl("ddl1"), DropDownList).SelectedValue
    >
    > これを設定しなくても修正更新ができているみたいです!
    > 一つ一つのDropdownlistを設定しないといけないかと思っていじっていたのですが、
    > 消してしまって大丈夫みたいです!!

     

    ということで、DropDownList を使うのはやめて、さらにコードを見ると前回問題が
    解決できなかった楽観的同時実行制御を使うのもやめたようですが、そのコードが
    残ってしまっているようです。

     

    それが原因かどうか分かりませんが、まずは不要なものは削除(というより、
    SqlDataSource と GridView を、ウィザードベースでゼロから作り直す)して、

    それで試して見てはいかがですか?

    2008年7月8日 7:37
  • すみません、間違えました。

     

    誤: SqlDataSource と GridView を、ウィザードベースでゼロから作り直す)して、

                                     ↓

    正: SqlDataSource と DetailsView を、ウィザードベースでゼロから作り直す)して、

     

    2008年7月8日 7:41
  • SuferOnWwwさん

     

    ありがとうございます。

     

     

    >以下のスレッドの続きですよね?

     

    はい、そうです。

     

     

    色々いじって、修正したり、削除したり、作り直したりしていましたら、なんとかページが表示できませんというページが出てこず、

    ちゃんと次のページが表示されるようになりました!

     

    いじりすぎたせいで、どれが原因かがわからなくなってしまったのですが、(すみません。。)

    ちゃんと思い通りに更新されているわけではないのですが(苦笑)、次のページが出てきました。

     

     

    trapemiyaさん、お手数おかけして申し訳ございません。

    いつもありがとうございます。

     

    これに懲りずにまたどうぞよろしくお願いします。

     

     

    SuferOnWwwさん、ありがとうございました。

    2008年7月8日 7:45
  • 解決されて何よりです。ご提示されたコードを見た限りでは更新系でおかしなことは起きなさそうな感じでした。ItemUpdatingイベントが発生しないというのが最後まで引っかかっていたのですが、何か動作がおかしくなっていたのかもしれません。経験上、ASP.NETはそういう不可解な動作をする時があります。ASP.NETのテンポラリファイルを一度削除してみる手があったかもしれません。

    通常、以下にあります。

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

     

    今回はいろいろいじっている中でウィザードの再実行をされたのであれば、それによって正しい構成が再生成されたのかもしれません。特にテーブルを途中で変更したような場合に、ウィザードの再実行でうまく動くようになった経験があります。

    2008年7月8日 8:31
    モデレータ
  • trapemiyaさん

    ありがとうございます。

     

    いじっているうちにItemUpdatingイベントの中にも入っていき、ちゃんと動作するようになりました。

     

     

    ASP.NETにもテンポラリファイルがあるんですね。。

     

    機能がありすぎて、使いこなすのにいつまでかかるやら、、、です。

     

     

    また違うところでつまづき始めたので、もうちょっとネットで調べてみますが、お手上げ状態になりましたら、

    また教えてください!

     

    よろしくお願いします。

    2008年7月8日 9:00