<開発環境>
Microsoft Windows 10
Microsoft Visual Studio Community 2019 Version 16.4.2
Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.4075.0
Microsoft Access Office365 -1911
ASP.NETを使って、Webによる顧客との面談リストを作成しています。
GridViewを用いて、「訪問日」、「顧客名」、「報告者」などをテーブル表示させ、さらに検索条件をDropDownListやTextBoxに入力することで
GridViewに表示させるデータの絞込みを実施させています。ここまでは、現時点でできています。
ただ、現時点ですとデータベース(Access)を開き直接データ追加、編集、削除を実施しているので、
この作業もWeb上でできるようにしたいと考えています。
そのため、上記のaspxファイルに、GridViewに連携させたDetailViewを追加し、データの追加、編集、削除などはDetailsViewで実施させようと思ったのですが、Webで開いても本来GridViewに表示するはずの元データ(絞込みする間には全データが表示するはず)自体が、表示しなくなってしまいました。
GridViewとDetailsViewは「Report_Id」をキーに連携のどこかに問題があるのだと思い調べては見たもののなかなか解決に至っておりません。
確認すべき箇所、あるいはこのようなコードを記載する際の注意点等ご教示いただけないでしょうか。
不足情報あれば、追記するようにします・
どうぞよろしくお願いします。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="Report_Id" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:CommandField ShowSelectButton="True" ButtonType="Button" /> <asp:HyperLinkField DataNavigateUrlFields="File_Name" DataNavigateUrlFormatString="/Report_Strage/{0}" DataTextField="Visit_Date" DataTextFormatString="{0:yyyy/MM/dd}" HeaderText="面談日"> </asp:HyperLinkField> <asp:TemplateField HeaderText="顧客名"> <ItemTemplate> <asp:Label id="Label1" runat="server" Text='<%# Bind("Customer_NameEng") %>'> </asp:Label><br /> <asp:Label id="Label2" runat="server" Text='<%# Bind("Customer_NameLoc") %>'> </asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Customer_Country" HeaderText="所在国"> </asp:BoundField> <asp:BoundField DataField="Supply_Product" HeaderText="供給製品"> </asp:BoundField> <asp:BoundField DataField="Apprication" HeaderText="使用用途"> </asp:BoundField> <asp:BoundField DataField="Reporter_Name" HeaderText="報告者"> </asp:BoundField> <asp:BoundField DataField="Reporter_Section" HeaderText="報告部署"> </asp:BoundField> <asp:BoundField DataField="Report_Id" HeaderText="Report_Id" InsertVisible="False" ReadOnly="True" Visible="False" /> </Columns> <EmptyDataTemplate> <asp:Label id="Label4" runat="server" Text="該当するデータがありません。<br>抽出条件を指定してから「検索」ボタンをクリックしてください。"> </asp:Label> </EmptyDataTemplate> </asp:GridView> <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="Report_Id" DataSourceID="SqlDataSource1" DefaultMode="Insert"> <Fields> <asp:BoundField DataField="Reporter_Name" HeaderText="報告者" /> <asp:BoundField DataField="Reporter_Section" HeaderText="報告部署" /> <asp:BoundField DataField="Visit_Year" HeaderText="Visit_Year" /> <asp:BoundField DataField="Visit_Date" HeaderText="訪問日" /> <asp:BoundField DataField="Customer_NameLoc" HeaderText="顧客名" /> <asp:BoundField DataField="Customer_NameEng" HeaderText="顧客名(英語)" /> <asp:BoundField DataField="Customer_Country" HeaderText="所在国" /> <asp:BoundField DataField="Supply_Product" HeaderText="供給製品" /> <asp:BoundField DataField="Apprication" HeaderText="使用用途" /> <asp:BoundField DataField="File_Name" HeaderText="報告書ファイル名" /> <asp:CommandField ButtonType="Button" ShowInsertButton="True" ShowDeleteButton="True" ShowEditButton="True" /> </Fields> </asp:DetailsView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Tbl_Data_Report] WHERE [Report_Id] = ?" InsertCommand="INSERT INTO [Tbl_Data_Report] ([Report_Id], [Reporter_Name], [Reporter_Section], [Visit_Year], [Customer_NameLoc], [Customer_NameEng], [Customer_Country], [Supply_Product], [Apprication], [File_Name]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Tbl_Data_Report] WHERE (([Visit_Year] LIKE '%' + ? + '%') AND ([Reporter_Name] LIKE '%' + ? + '%') AND ([Customer_Country] LIKE '%' + ? + '%') AND ([Reporter_Section] LIKE '%' + ? + '%') AND ([Customer_NameEng] LIKE '%' + ? + '%') AND ([Apprication] LIKE '%' + ? + '%') AND ([Supply_Product] LIKE '%' + ? + '%')) OR (([Visit_Year] LIKE '%' + ? + '%') AND ([Reporter_Name] LIKE '%' + ? + '%') AND ([Customer_Country] LIKE '%' + ? + '%') AND ([Reporter_Section] LIKE '%' + ? + '%') AND ([Customer_NameLoc] LIKE '%' + ? + '%') AND ([Apprication] LIKE '%' + ? + '%') AND ([Supply_Product] LIKE '%' + ? + '%')) ORDER BY [Visit_Date] DESC, [Customer_NameEng]" UpdateCommand="UPDATE [Tbl_Data_Report] SET [Reporter_Name] = ?, [Reporter_Section] = ?, [Visit_Year] = ?, [Customer_NameLoc] = ?, [Customer_NameEng] = ?, [Customer_Country] = ?, [Supply_Product] = ?, [Apprication] = ?, [File_Name] = ? WHERE [Report_Id] = ?"> <DeleteParameters> <asp:Parameter Name="Report_Id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Report_Id" Type="Int32" /> <asp:Parameter Name="Reporter_Name" Type="String" /> <asp:Parameter Name="Reporter_Section" Type="String" /> <asp:Parameter Name="Visit_Year" Type="String" /> <asp:Parameter Name="Customer_NameLoc" Type="String" /> <asp:Parameter Name="Customer_NameEng" Type="String" /> <asp:Parameter Name="Customer_Country" Type="String" /> <asp:Parameter Name="Supply_Product" Type="String" /> <asp:Parameter Name="Apprication" Type="String" /> <asp:Parameter Name="File_Name" Type="String" /> </InsertParameters> <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" DefaultValue="%" Name="Visit_Year" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="DropDownList2" DefaultValue="%" Name="Reporter_Name" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="DropDownList3" DefaultValue="%" Name="Customer_Country" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="DropDownList4" DefaultValue="%" Name="Reporter_Section" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="TextBox1" DefaultValue="%" Name="Customer_NameEng" PropertyName="Text" Type="String" /> <asp:ControlParameter ControlID="TextBox2" DefaultValue="%" Name="Apprication" PropertyName="Text" Type="String" /> <asp:ControlParameter ControlID="DropDownList5" DefaultValue="%" Name="Supply_Product" PropertyName="SelectedValue" Type="String" /> <asp:Parameter Name="Report_Id" Type="Int32" /> <asp:ControlParameter ControlID="DropDownList1" DefaultValue="%" Name="Visit_Year" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="DropDownList2" DefaultValue="%" Name="Reporter_Name" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ontrolID="DropDownList3" DefaultValue="%" Name="Customer_Country" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="DropDownList4" DefaultValue="%" Name="Reporter_Section" PropertyName="SelectedValue" Type="String" /> <asp:ControlParameter ControlID="TextBox1" DefaultValue="%" Name="Customer_NameLoc" PropertyName="Text" Type="String" /> <asp:ControlParameter ControlID="TextBox2" DefaultValue="%" Name="Apprication" PropertyName="Text" Type="String" /> <asp:ControlParameter ControlID="DropDownList5" DefaultValue="%" Name="Supply_Product" PropertyName="SelectedValue" Type="String" /> <asp:Parameter Name="Report_Id" Type="Int32" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="Reporter_Name" Type="String" /> <asp:Parameter Name="Reporter_Section" Type="String" /> <asp:Parameter Name="Visit_Year" Type="String" /> <asp:Parameter Name="Customer_NameLoc" Type="String" /> <asp:Parameter Name="Customer_NameEng" Type="String" /> <asp:Parameter Name="Customer_Country" Type="String" /> <asp:Parameter Name="Supply_Product" Type="String" /> <asp:Parameter Name="Apprication" Type="String" /> <asp:Parameter Name="File_Name" Type="String" /> <asp:Parameter Name="Report_Id" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource> </asp:Content>