我每次在 GridView1 中选择特定字段时都会尝试,它会在 GridView2 中的Access数据库中打开相关数据。
这是我页面上的代码。
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="MainView.aspx.vb" Inherits="DosimetryASPNET_WebApplication.MainView" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" runat="server">
<asp:Button ID="btnMenuView" runat="server" Text="Return to Menu" Width="200px" OnClick="btnMenuView_Click" />
<br />
<br />
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" runat="server">
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="BatchID">
<Columns>
<asp:BoundField DataField="BatchID" HeaderText="BatchID" InsertVisible="False" ReadOnly="True" SortExpression="BatchID" />
<asp:BoundField DataField="Product" HeaderText="Product" SortExpression="Product" />
<asp:BoundField DataField="BatchSize" HeaderText="BatchSize" SortExpression="BatchSize" />
<asp:BoundField DataField="Priority" HeaderText="Priority" SortExpression="Priority" />
<asp:BoundField DataField="StartReq" HeaderText="StartReq" SortExpression="StartReq" />
<asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>" ProviderName="<%$ ConnectionStrings:NorthwindConnectionString1.ProviderName %>" SelectCommand="SELECT * FROM [AllBatches]"></asp:SqlDataSource>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="BatchID" Visible="False">
</asp:GridView>
</asp:Content>
这是我用来填充 GridView1
的代码Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As New Northwind.AllBatchesDataTable
Using da As New NorthwindTableAdapters.AllBatchesTableAdapter
da.Fill(dt)
End Using
GridView1.DataSource = dt.DefaultView
GridView1.DataBind()
End Sub
我正在使用Access数据库并填充 GridView2 我使用第二个表。
对于 GridView1 ,我使用“ AllBatches ”表格,其中包含以下列: BatchID - 产品 - BatchSize - 优先级 - StartReq - 状态< /强>
对于 GridView2 ,我希望调用表“ IngredientsTable ”。它包含以下列: LotManufactID - 成分 - 实际 - 目标 - 最低 - 最高< / strong> - WeighinhDate - 状态 - IDBatchID
在我的Access数据库中,该表的工作方式与我希望它在ASP.NET中一样。 当我点击“ AllBatches ”的“ BatchID ”时,它会在我点击“ IngredientsTable “数据。 我在两个表之间的银行中创建了一个关系。
执行此操作可能过于复杂,但我需要帮助开发此功能,至少在 GridView2 “ IngredientsTable ”数据中打开与“< “ AllBatches ”的strong> BatchID “。
我希望你成功地证明了我的怀疑和明确。 我在等待帮助。
答案 0 :(得分:0)
许多可能的解决方案之一: - 声明&#34;选择&#34; GridView1中的字段 - 定义GridView2列 - 单击选择字段时,将引发onSelectedIndexChanged,并在该事件中读取所单击行的BatchID,对成分表执行查询并在GridView2上显示结果
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int BatchID = (int)GridView1.DataKeys[GridView1.SelectedIndex].Value;
//Access Ingredients with batchID
var dtIngredients = new DataTable(); // create datasource with a query
GridView2.Visible = true;
GridView2.DataSource = dtIngredients;
GridView2.DataBind();
}
和代码
getContext().getServiceReference(LogService.class.getName());