18910140161

朝鲜深夜炮击朝韩缓冲水域 C#-在DataList元素中显示来自两个数据库表的数据-ASP.NET-堆栈溢出

顺晟科技

2022-10-19 13:26:56

57

我希望在每个datalist项中显示来自两个不同数据库表的数据,特别是关于职务应用程序的详细信息,然后使用应用程序所有者的ID在其旁边显示所有者的一些详细信息。有人能帮我解决这个问题吗。

这是DataList的ASP.NET视图:

  <asp:DataList ID="applicationsDataList" runat="server" RepeatColumns="4">  

      <ItemTemplate  >  
          <div class="applicationCard">

      <table>    
          
        <tr>  
           <td>  
               <asp:Label  ID="lblJobIndustry" runat="server" Text=<%#Eval("jobIndustry")%>/>          
           </td>  
        </tr>  

          <tr>
        <td>        
      <asp:Image runat="server" ImageUrl="/Images/temp.jpg" />    
        </td>  
        </tr>

            <tr>  
           <td>  
               <asp:Label  ID="LblJobPosition" runat="server" Text= <%#Eval("jobPosition")%>/>          
           </td>  
        </tr>  

          <tr>
         <td>  
          <asp:Label ID="Label3" runat="server" Text=<%#Eval("firstName")%>/>  
            <asp:Label ID="Label5" runat="server" Text=<%#Eval("lastName")%>/>  
         </td>  
        </tr>

          <tr>
         <td>              
           <asp:Label ID="Label4"  runat="server" Text=<%#Eval("jobLocation")%>/>  
          </td>  
        </tr>
        
      </table>  

        </div>
        </ItemTemplate>  
      
      
    </asp:DataList>  

这是后面的代码,我不知道如何做到这一点,但给出了我的方法:

  <asp:DataList ID="applicationsDataList" runat="server" RepeatColumns="4">  

      <ItemTemplate  >  
          <div class="applicationCard">

      <table>    
          
        <tr>  
           <td>  
               <asp:Label  ID="lblJobIndustry" runat="server" Text=<%#Eval("jobIndustry")%>/>          
           </td>  
        </tr>  

          <tr>
        <td>        
      <asp:Image runat="server" ImageUrl="/Images/temp.jpg" />    
        </td>  
        </tr>

            <tr>  
           <td>  
               <asp:Label  ID="LblJobPosition" runat="server" Text= <%#Eval("jobPosition")%>/>          
           </td>  
        </tr>  

          <tr>
         <td>  
          <asp:Label ID="Label3" runat="server" Text=<%#Eval("firstName")%>/>  
            <asp:Label ID="Label5" runat="server" Text=<%#Eval("lastName")%>/>  
         </td>  
        </tr>

          <tr>
         <td>              
           <asp:Label ID="Label4"  runat="server" Text=<%#Eval("jobLocation")%>/>  
          </td>  
        </tr>
        
      </table>  

        </div>
        </ItemTemplate>  
      
      
    </asp:DataList>  

提前感谢你们这些天才!


顺晟科技:

好吧,不清楚是否要将第一个表中的数据显示为某种网格,然后在单击该网格的某一行时,显示该行所选内容的详细信息?

或者,是否希望主数据+子数据都显示在同一个网格或视图中?

我的意思是,我们甚至可以说有一些数据行,然后说你按了一个“+”按钮来展开并显示子数据?

我发现尝试嵌套两个gridviews有点乱。但是listview(主表)和子gridview工作得相当好。

所以我们有这个标记。不是一个“大”数量,但它确实产生了一些很好的格式

所以这个:

  <asp:DataList ID="applicationsDataList" runat="server" RepeatColumns="4">  

      <ItemTemplate  >  
          <div class="applicationCard">

      <table>    
          
        <tr>  
           <td>  
               <asp:Label  ID="lblJobIndustry" runat="server" Text=<%#Eval("jobIndustry")%>/>          
           </td>  
        </tr>  

          <tr>
        <td>        
      <asp:Image runat="server" ImageUrl="/Images/temp.jpg" />    
        </td>  
        </tr>

            <tr>  
           <td>  
               <asp:Label  ID="LblJobPosition" runat="server" Text= <%#Eval("jobPosition")%>/>          
           </td>  
        </tr>  

          <tr>
         <td>  
          <asp:Label ID="Label3" runat="server" Text=<%#Eval("firstName")%>/>  
            <asp:Label ID="Label5" runat="server" Text=<%#Eval("lastName")%>/>  
         </td>  
        </tr>

          <tr>
         <td>              
           <asp:Label ID="Label4"  runat="server" Text=<%#Eval("jobLocation")%>/>  
          </td>  
        </tr>
        
      </table>  

        </div>
        </ItemTemplate>  
      
      
    </asp:DataList>  

好的,我们显示它的代码如下:

  <asp:DataList ID="applicationsDataList" runat="server" RepeatColumns="4">  

      <ItemTemplate  >  
          <div class="applicationCard">

      <table>    
          
        <tr>  
           <td>  
               <asp:Label  ID="lblJobIndustry" runat="server" Text=<%#Eval("jobIndustry")%>/>          
           </td>  
        </tr>  

          <tr>
        <td>        
      <asp:Image runat="server" ImageUrl="/Images/temp.jpg" />    
        </td>  
        </tr>

            <tr>  
           <td>  
               <asp:Label  ID="LblJobPosition" runat="server" Text= <%#Eval("jobPosition")%>/>          
           </td>  
        </tr>  

          <tr>
         <td>  
          <asp:Label ID="Label3" runat="server" Text=<%#Eval("firstName")%>/>  
            <asp:Label ID="Label5" runat="server" Text=<%#Eval("lastName")%>/>  
         </td>  
        </tr>

          <tr>
         <td>              
           <asp:Label ID="Label4"  runat="server" Text=<%#Eval("jobLocation")%>/>  
          </td>  
        </tr>
        
      </table>  

        </div>
        </ItemTemplate>  
      
      
    </asp:DataList>  

我们现在有以下内容:

所以,现在我们只需要“+”按钮的代码来显示子数据。

该按钮代码如下所示:

  <asp:DataList ID="applicationsDataList" runat="server" RepeatColumns="4">  

      <ItemTemplate  >  
          <div class="applicationCard">

      <table>    
          
        <tr>  
           <td>  
               <asp:Label  ID="lblJobIndustry" runat="server" Text=<%#Eval("jobIndustry")%>/>          
           </td>  
        </tr>  

          <tr>
        <td>        
      <asp:Image runat="server" ImageUrl="/Images/temp.jpg" />    
        </td>  
        </tr>

            <tr>  
           <td>  
               <asp:Label  ID="LblJobPosition" runat="server" Text= <%#Eval("jobPosition")%>/>          
           </td>  
        </tr>  

          <tr>
         <td>  
          <asp:Label ID="Label3" runat="server" Text=<%#Eval("firstName")%>/>  
            <asp:Label ID="Label5" runat="server" Text=<%#Eval("lastName")%>/>  
         </td>  
        </tr>

          <tr>
         <td>              
           <asp:Label ID="Label4"  runat="server" Text=<%#Eval("jobLocation")%>/>  
          </td>  
        </tr>
        
      </table>  

        </div>
        </ItemTemplate>  
      
      
    </asp:DataList>  

现在,当我们单击a+时,我们会看到:

真的很酷?

listview“记住”我们设置的样式的状态(隐藏/显示)。

因此,如果单击展开的+,它将隐藏。

所以,我可以自由地展开更多行,如下所示:

,当然,我有一个“helper”例程,它返回给定sql的数据表(我厌倦了一遍又一遍地键入代码)。那么MyRst()是这样的:

  <asp:DataList ID="applicationsDataList" runat="server" RepeatColumns="4">  

      <ItemTemplate  >  
          <div class="applicationCard">

      <table>    
          
        <tr>  
           <td>  
               <asp:Label  ID="lblJobIndustry" runat="server" Text=<%#Eval("jobIndustry")%>/>          
           </td>  
        </tr>  

          <tr>
        <td>        
      <asp:Image runat="server" ImageUrl="/Images/temp.jpg" />    
        </td>  
        </tr>

            <tr>  
           <td>  
               <asp:Label  ID="LblJobPosition" runat="server" Text= <%#Eval("jobPosition")%>/>          
           </td>  
        </tr>  

          <tr>
         <td>  
          <asp:Label ID="Label3" runat="server" Text=<%#Eval("firstName")%>/>  
            <asp:Label ID="Label5" runat="server" Text=<%#Eval("lastName")%>/>  
         </td>  
        </tr>

          <tr>
         <td>              
           <asp:Label ID="Label4"  runat="server" Text=<%#Eval("jobLocation")%>/>  
          </td>  
        </tr>
        
      </table>  

        </div>
        </ItemTemplate>  
      
      
    </asp:DataList>  

所以,我们编写的代码很少。

我们甚至没有太多的加价。

但结果非常惊人--网格不断扩展、折叠,而且代码很少。

现在,我想您可以展开网格开始,但是通过上面的内容,我们有很好的性能,因为我们只在单击“+”按钮时拉+显示子行。更好的是,因为列表视图记得它的状态?然后,如果展开之前已经展开的行,我就不会重新加载。因此,就性能而言,此设置是非常好的。

注意,我确实假定bootstrap包含在内,因此包含了class=“table table-hover”。这使得两个网格看起来非常漂亮。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航