Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在同一ListView中显示来自多个数据源的数据_C#_Asp.net_Webforms - Fatal编程技术网

C# 在同一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

我在InsertItemTemplate中有一个ListView和两个下拉控制器。这些下拉列表从ListView数据之外的另一个表获取数据

<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也在电影表中。