C# 在同一ListView中显示来自多个数据源的数据
我在InsertItemTemplate中有一个ListView和两个下拉控制器。这些下拉列表从ListView数据之外的另一个表获取数据C# 在同一ListView中显示来自多个数据源的数据,c#,asp.net,webforms,C#,Asp.net,Webforms,我在InsertItemTemplate中有一个ListView和两个下拉控制器。这些下拉列表从ListView数据之外的另一个表获取数据 <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource2" DataTextField="Genrename" DataValueField="GenreID" SelectedValue='<%# Bind("GenreI
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource2"
DataTextField="Genrename" DataValueField="GenreID"
SelectedValue='<%# Bind("GenreID") %>'>
</asp:DropDownList>
<br />
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="ObjectDataSource3"
DataTextField="Directorname" DataValueField="RegissorID"
SelectedValue='<%# Bind("DirectorID") %>'>
</asp:DropDownList>
现在,我想显示流派和导演的名字,而不是ID,但我仍然需要在我的主表(电影)中插入ID
以下是我的ItemTemplate的外观:
<td>
<asp:Label ID="GenreIDLabel" runat="server" Text='<%# Eval("GenreID") %>' />
</td>
<td>
<asp:Label ID="RegissorIDLabel" runat="server" Text='<%# Eval("RegissorID") %>' />
</td>
修改ListView正在访问的数据源控件的
SelectCommand
。连接三个表
例如:
SelectCommand="Select m.movie,m.Genre,m.Director,g.GenreName,d.DirectorName From Movies as m Inner Join Genres as g ON m.Genre=g.GenreID Inner Join Directors as d ON m.Director=d.DirectorID"
在此之后,gridview可以访问GenreName
和DirectorName
。
更新您的ItemTemplate
<td>
<asp:Label ID="GenreIDLabel" runat="server" Text='<%# Eval("GenreName") %>' />
</td>
<td>
<asp:Label ID="RegissorIDLabel" runat="server" Text='<%# Eval("DirectorName") %>' />
</td>
编辑
我在你的评论中看到你是从列表中获取数据的。我想也一样,只要更新select语句就行了。在我的示例中,我假设您正在使用SqlDataSource控件修改ListView正在访问的datasource控件的
SelectCommand
。连接三个表
例如:
SelectCommand="Select m.movie,m.Genre,m.Director,g.GenreName,d.DirectorName From Movies as m Inner Join Genres as g ON m.Genre=g.GenreID Inner Join Directors as d ON m.Director=d.DirectorID"
在此之后,gridview可以访问GenreName
和DirectorName
。
更新您的ItemTemplate
<td>
<asp:Label ID="GenreIDLabel" runat="server" Text='<%# Eval("GenreName") %>' />
</td>
<td>
<asp:Label ID="RegissorIDLabel" runat="server" Text='<%# Eval("DirectorName") %>' />
</td>
编辑
我在你的评论中看到你是从列表中获取数据的。我想也一样,只要更新select语句就行了。在我的示例中,我假设您使用的是SqlDataSource控件,这取决于您如何访问数据:ADO.Net,一些ORM?我使用ADO.Net访问数据,我从列表中获取数据通过下拉列表访问查询本身的连接。看起来您已经完成了要求的操作。您想显示名称并向数据库发送ID,对吗?我可以看到您的下拉列表正在这样做。@没错,我希望ID出现在我的电影表中,但当我在GridView中显示所有值时,我希望看到的是真名而不是ID,例如“喜剧”而不是ID“4”。但正如我所说,我希望ID4也在电影表中。这取决于您如何访问数据:ADO.Net,一些ORM?我使用ADO.Net访问数据,我从列表中获取数据。在下拉列表访问的查询本身中进行连接。看起来您已经完成了要求的操作。您想显示名称并向数据库发送ID,对吗?我可以看到您的下拉列表正在这样做。@没错,我希望ID出现在我的电影表中,但当我在GridView中显示所有值时,我希望看到的是真名而不是ID,例如“喜剧”而不是ID“4”。但正如我所说的,我希望ID 4也在电影表中。