带有每个项目的详细信息行的 Gridview

2024-04-05

我是 ASP.NET 新手。我有一个基本的工作网格视图,列出了公司名称(参见下面的代码)。我想要做的是在每个公司下提供另一个联系人子列表,在“子列表”中缩进一点。

我想以某种方式循环遍历 Gridview 数据,然后运行联系人查询,将是“Select * from Import_Contact where Company = 'The Company from the GridView DataSource'”,然后显示每个公司下的联系人子集。输出应如下所示:

 1) Company A

      1) Contact x

      2) Contact y

      1) Contact x

 2) Company B

      1) Contact h

      2) Contact i

很快 ...

<asp:GridView ID="GridView1" runat="server" 
AutoGenerateColumns="False" 
AllowPaging="False" 
SelectedIndex="0" 
DataSourceID="dsUploadList"                      
ShowHeaderWhenEmpty="True" EmptyDataText="No records Found"                        
EnableRowClick = "False" Width="100%" AllowSorting="True"  
AutoGenerateEditButton="False"               
>
<Columns>
<asp:BoundField ReadOnly="True" HeaderText="Row"  ItemStyle-HorizontalAlign="Left" ItemStyle-Width="5%"  
    InsertVisible="False" DataField="Row"
    SortExpression="Row" />  

<asp:BoundField ReadOnly="True" HeaderText="Company"  ItemStyle-HorizontalAlign="Left" ItemStyle-Width="30%"  
    InsertVisible="False" DataField="Company"
    SortExpression="Company" />             

</Columns>      
</asp:GridView>
    <asp:SqlDataSource ID="dsUploadList" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnApps %>"

    SelectCommand="SELECT DISTINCT(Company) 
            , ROW_NUMBER() OVER (ORDER By Company ASC) AS Row
            FROM dbo.Import_CompanyContact icc WHERE RefNum = @RefNum "                    
> 

<SelectParameters> 
    <asp:QueryStringParameter  Name="RefNum" QueryStringField="RefNum" DefaultValue="0" Type="Int16" /> 
</SelectParameters>

关于如何实现这一目标有什么建议吗?一个很棒的代码示例。谢谢。


我会用一个ListView or DataList相反,因为操作显示会更容易。这应该会让你走上正确的道路:

<table width="595px">
    <asp:DataList BackColor="#ffffff" id="DataList1" DataKeyField="<ID>" OnItemDataBound="DataList1_ItemDataBound" runat="server" Width="100%">     
        <ItemTemplate>
           <tr>
              <td>
                  <asp:LinkButton ID="LinkButton1" runat="server" Text="+" OnCommand="LinkButton1_Command" CommandArgument='<%#Container.ItemIndex%>'></asp:LinkButton>    
              </td>
              <td><%#Eval("<COLUMN NAME>")%></td>
              <td><%#Eval("<COLUMN NAME>")%></td>
              <td><%#Eval("<COLUMN NAME>")%></td>
           </tr>
           <asp:Panel ID="pnlChildView" runat="server">
               <asp:DataList ID="DataList2" runat="server" Width="100%">
                   <ItemTemplate>
                       <tr>
                          <td><%#Eval("<CHILD OLUMN NAME>")%></td>
                          <td><%#Eval("<CHILD COLUMN NAME>")%></</td>
                          <td><%#Eval("<CHILD COLUMN NAME>")%></</td>                           
                       </tr>
                   </ItemTemplate>
               </asp:DataList>
           </asp:Panel>
        </ItemTemplate>
    </asp:DataList>
</table>

当用户单击 DataList1 中的 LinkBut​​ton/Button 时,执行如下操作:

protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
    //pass index of item in command argument
    int itemIndex = Convert.ToInt32(e.CommandArgument);      

    //depending on your needs bind the details on demand
    //or preload during ItemDataBound 

    Panel childViewPanel = (Panel)DataList1.Items[itemIndex].FindControl("pnlChildView");
    if (childViewPanel != null)
    {
        //toggle visibility of childViewPanel and bind child list if panel is visible

        if (childViewPanel.Visible)
        {
            DataList childList = childViewPanel.FindControl("DataList2");
            if (childList != null)
            {
                int keyValue = (int)DataList1.DataKeys[itemIndex];

                //bind the list using DataList1 data key value
                childList.DataSource = <DATA SOURCE>; //get data using keyValue
                childList.DataBind();
            }  
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有每个项目的详细信息行的 Gridview 的相关文章

随机推荐

  • 使用 ssh-keygen 创建 JSch 接受的 SSH 私钥 [重复]

    这个问题在这里已经有答案了 不是直接的编程问题 但有某种相关性 JSch Java SSH 库 似乎不允许 macOS 10 14 使用以下命令创建私钥 ssh keygen t rsa b 4096 我应该使用什么命令来创建具有这种格式的
  • 需要一个支持自动布局的可视化java库

    我需要一个用于可视化的 java 图形库 我可以将其合并到我自己的应用程序中 我发现 jgraph 非常适合可视化 但需要明确定位节点 有没有支持自动布局的开源java图形库 任何建议都会对我非常有帮助 有许多软件包可以做到这一点 如果你习
  • 如何在 Haskell 中获取 Maybe 的值

    我对 Haskell 比较陌生 并开始阅读 Real World Haskell 我刚刚偶然发现了 Maybe 类型 并且有一个关于如何从 a 接收实际值的问题Just 1例如 我编写了以下代码 combine a b c eliminat
  • 使用 npm 安装 Angular-cli 时出错

    当我尝试使用 npm 安装 Angular cli 时 出现错误 代码为 ETIMEDOUT 我尝试删除代理 代理和 HTTP 代理 尝试在管理模式下运行 cmd 更改 Nodejs 目标的路径 npm ERR code ETIMEDOUT
  • document.documentElement.scrollTop 返回值在 Chrome 中有所不同

    我正在尝试根据 处理一些代码document documentElement scrollTop 价值 它返回 348 在 FF 和 IE 中 但在 Chrome 中它返回 0 我需要做些什么来克服这个问题吗 FF gt gt gt doc
  • 具有 Visual Studio 编辑器功能的独立文本编辑器

    有人知道任何具有 Visual Studio 编辑器功能的文本编辑器吗 具体来说 我正在寻找以下功能 CTRL C 行中任意位置 未选择任何文本 gt 复制整行 在线任意位置按 CTRL X 或 SHIFT DEL 未选择任何文本 gt 剪
  • Perl 逐行读取

    我有一个简单的 Perl 脚本来逐行读取文件 代码如下 我想显示两行并打破循环 但这不起作用 错误在哪里 file SnPmaster txt open INFO file or die Could not open file count
  • 将ArrayList数据传递到android中的SOAP Web服务

    您好 我需要将数组列表数据传递到soap web 服务中 到目前为止 我有以下代码 public class ResultActivity extends Activity public final String NAMESPACE pub
  • 在 iOS 上发送 HTTP POST 请求

    我正在尝试使用我正在开发的 iOS 应用程序发送 HTTP Post 但推送从未到达服务器 尽管我确实收到了代码 200 作为响应 来自 urlconnection 我从未收到服务器的响应 服务器也没有检测到我的帖子 服务器确实检测到来自
  • 为什么fork后关闭文件描述符会影响子进程?

    我想通过单击按钮在linux中运行程序 因此我编写了一个函数execute void execute const char program call const char param pid t child vfork if child 0
  • 对灰度 NSImage(或 CIImage)进行着色

    我有一个灰度图像 我想用它来绘制 Cocoa 控件 图像具有不同的灰度级别 在最暗的地方 我希望它绘制最暗的指定色调 我希望它在源图像是白色的地方是透明的 基本上 我想重现在 iPhone 上的 UINavigationBar 中看到的ti
  • Flutter中下拉刷新

    我的仪表板代码如下所示 这里我在 getReport 方法中做 get req 我添加了RefreshIndicator在代码中 当在容器内下拉时应该进行刷新 我正在调用我的 getData 但我没有得到刷新的内容 我在下面添加我的代码 如
  • 为什么 C++11 中需要添加尾随返回类型? [复制]

    这个问题在这里已经有答案了 我终于开始阅读c 11 questions tagged c 2b 2b11我不明白为什么需要尾随返回类型 我遇到了以下示例 该示例用于突出问题 template
  • Chrome 新标签页事件

    我想在 Chrome 中创建新选项卡时触发一个事件 我以为下面的内容可以做到这一点 但似乎不行 初学者 清单 json name My First Extension version 1 0 description The first ex
  • 如何处理服务器和客户端之间的时区?

    我正在开发一个网站 我必须处理用户可能存在的不同时区 这成为一个大问题 因为该网站举办拍卖等时间敏感的活动 服务器上的所有日期 时间均采用 UTC 格式 数据库以 UTC 时间戳存储所有内容 PHP 默认时区也设置为 UTC date de
  • 选择选项中的删除线文本

    我试图删除选择选项中的文本 但由于某种原因它不起作用 Fiddler https jsfiddle net 99x50s2s 95 https jsfiddle net 99x50s2s 95 HTML
  • NSURLSessionTask 身份验证质询完成处理程序和 NSURLAuthenticationChallenge 客户端

    我正在实施一个自定义NSURLProtocol 并且内部想要使用NSURLSession与内部网络的数据任务而不是NSURLConnection 我遇到了一个有趣的问题 想知道挑战处理程序的内部实现NSURLSession NSURLSes
  • 使用 XML 差异和合并进行版本控制

    我正在寻找一个开源版本控制工具 可以比较和合并 XML 文件 我必须找到这样一个工具的困难在于 我需要正确合并比较节点而不是行的 XML 文件 任何想法 谢谢 不幸的是 对于这个问题没有一刀切的解决方案 XML 比较对于您认为不同的内容非常
  • 为什么 C# Parallel.Invoke 很慢?

    我正在这样做 private static void Main string args var dict1 new Dictionary
  • 带有每个项目的详细信息行的 Gridview

    我是 ASP NET 新手 我有一个基本的工作网格视图 列出了公司名称 参见下面的代码 我想要做的是在每个公司下提供另一个联系人子列表 在 子列表 中缩进一点 我想以某种方式循环遍历 Gridview 数据 然后运行联系人查询 将是 Sel