在Gridview行中添加多行

时间:2010-09-10 15:52:45

标签: asp.net gridview

我正在使用Gridview控件,我还在ASP .NET的每一行添加了单选按钮。 这是我想要完成的事情,但我不确定应该怎么做。问题是我已经在每个gridview中添加了多个数据流。像下面的东西。

alt text

因此,在某些情况下,我添加了一行,其中包含两行,如示例所示。并且,ID最终将是用户可以点击的单选按钮。有什么方法可以实现这个目标吗?

谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

这有点奇怪的要求,但我在过去做了类似的事情,我为每一行添加了第二行的备注框,因为它太宽而不适合当前行。< / p>

在你的RowDataBound事件中尝试这样的事情:

    GridView x = (GridView)sender;

    if (e.Row.RowType == DataControlRowType.DataRow && x.EditIndex == e.Row.RowIndex)
    {
        TextBox notes = (TextBox)e.Row.Cells[0].Controls[0];
        notes.Height = // some height
        notes.Width = // some width
        notes.TextMode = TextBoxMode.MultiLine;
        e.Row.Cells[0].Controls.Clear();
        GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Normal);
        TableCell cell = new TableCell();
        cell.ColumnSpan = // gridview columns count;
        cell.Controls.Add(notes);
        row.Cells.Add(cell);
        x.Controls[0].Controls.AddAt(x.EditIndex + 2, row);
    }

请注意,这是从第23列抓取现有绑定的TextBox并将其复制到新行,然后从原始单元格中删除它。此外,备注框仅显示在正在编辑的行上,因此:&& x.EditIndex == e.Row.RowIndexx.Controls[0].Controls.AddAt(x.EditIndex + 2, row);

您可能只想要new GridViewRownew TableCell部分。

答案 1 :(得分:0)

对于RadioButton,您需要使用

<asp:TemplateField>
   <ItemTemplate>
      <asp:RadioButton ID="RadioButton1" runat="server" />
   </ItemTemplate>
</asp:TemplateField>

取决于您绑定到GridView的数据,例如对象列表中的对象列表,您可以使用Container.DataItem在Gridview中绑定Gridview。

<asp:TemplateField>
   <ItemTemplate>          
       <asp:GridView ID="GridView2" runat="server" DataSource='<%((Relationships)Container.DataItem).People %>'>
           <Columns>                            
           </Columns>
       </asp:GridView>
   </ItemTemplate>
</asp:TemplateField>