VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: vincentngacn

|M|今天面试:本以为很简单的问题,但却做不出来。非常郁闷 大家快来分析分析

[复制链接]

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-4-22 22:30:01 | 显示全部楼层
你的想法是不是
在点击详细的时候
给gridview添加一行
然后合并这一行
添加一个table?
如果是这样的话
row.Cells[0].Text
可不可以为
row.Cells[0].Controls.Add(GridView);
这样方便操作详细里面的数据?
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-24 08:45:02 | 显示全部楼层
前台:

  <asp:GridView AutoGenerateColumns="false"  ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand">
            <Columns>
                <asp:BoundField DataField="Key" HeaderText="Key" />
                 <asp:BoundField DataField="Value" HeaderText="Value" />
                 
                 <asp:ButtonField ButtonType="Button" Text="详细" CommandName="detail" />
               
              
            </Columns>
        </asp:GridView>
        
        <asp:Repeater ID="rp1" runat="server">
            <HeaderTemplate>
                <table border="1">
                <tr>
                    <td>类别</td>
                    <td>时间</td>
                    <td>金额</td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <TR>
                    <td><%#Eval("A")%></td>
                     <td><%#Eval("B")%></td>
                     <td><%#Eval("C")%></td>
                </TR>
            </ItemTemplate>
            <FooterTemplate>
                </TABLE>
            </FooterTemplate>
        </asp:Repeater>
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-24 09:15:01 | 显示全部楼层
后台:

protected void Page_Load(object sender, EventArgs e)
    {

        
        System.Collections.Hashtable ht = new Hashtable();
        ht.Add("AA", true);
        ht.Add("BB", false);
        ht.Add("CC", "2");
        ht.Add("DD", "3");
        ht.Add("EE", "3");


        this.GridView1.DataSource = ht;
        this.GridView1.DataBind();

        
      
        
    }


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "detail")
        {

           
            int iIndex = Convert.ToInt32(e.CommandArgument);
  
            GridViewRow row = this.GridView1.Rows[iIndex];
            GridViewRow NewRow = new GridViewRow(iIndex + 1, iIndex, DataControlRowType.DataRow, DataControlRowState.Normal);
            NewRow.Cells.Add(new TableCell());
            NewRow.Cells[0].ColumnSpan = row.Cells.Count;
         


            DataTable dt = new DataTable();
            dt.Columns.Add("A", typeof(string));
            dt.Columns.Add("B", typeof(string));
            dt.Columns.Add("C", typeof(Int32));
            DataRow r1 = dt.NewRow();
            r1[0] = "软件工程";
            r1[1] = "06-01-12";
            r1[2] = 8000;
            dt.Rows.Add(r1);
            r1 = dt.NewRow();
            r1[0] = "网站开发";
            r1[1] = "06-11-10";
            r1[2] = 12000;
            dt.Rows.Add(r1);


            this.rp1.DataSource = dt.DefaultView;
            this.rp1.DataBind();
            this.GridView1.Controls[0].Controls.AddAt(iIndex+2,NewRow);

            NewRow.Cells[0].Controls.Add(this.rp1);
           

        }
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-4-24 11:15:01 | 显示全部楼层
这个方法是通过服务器事件显示,隐藏的.

还可以生成html代码后.先隐藏在客户端.通过点击,按纽显示隐藏.
回复

使用道具 举报

2

主题

11

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-24 23:15:01 | 显示全部楼层
看看先
回复

使用道具 举报

2

主题

11

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-4-25 07:45:01 | 显示全部楼层
真是完美啊,
谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表