Добавление нескольких строк внутри строки Gridview - PullRequest
1 голос
/ 10 сентября 2010

Я работаю с элементом управления Gridview и также добавляю переключатель в каждую строку в ASP .NET. Вот то, чего я хотел бы достичь, но я не уверен, как это должно быть сделано. Проблема в том, что я добавил несколько кратких данных каждого вида сетки. Нечто вроде ниже.

alt text

Итак, в некоторых случаях я добавил строку с двумя строками, как в примере. И идентификатор в конечном итоге будет переключателем, где пользователь может нажать. Есть ли способ, которым я могу это сделать?

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2010

Для RadioButton вам нужно будет использовать

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

. В зависимости от данных, которые вы привязываете к GridView, например, список объектов в списках объектов, вы можете связать Gridview в виде сеткииспользуя Container.DataItem.

<asp:TemplateField>
   <ItemTemplate>          
       <asp:GridView ID="GridView2" runat="server" DataSource='<%((Relationships)Container.DataItem).People %>'>
           <Columns>                            
           </Columns>
       </asp:GridView>
   </ItemTemplate>
</asp:TemplateField>
0 голосов
/ 15 сентября 2010

Это немного странное требование, но в прошлом я делал нечто подобное, когда добавлял вторую строку для поля заметок для каждой строки, потому что он был бы слишком широким, чтобы уместиться в текущей строке.

Во время вашего события 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);
    }

обратите внимание, это захват существующего связанного TextBox из 23-го столбца и копирование его в новую строку, а затем удаление из исходной ячейки. Кроме того, поле примечаний отображалось только в редактируемой строке, поэтому: && x.EditIndex == e.Row.RowIndex и x.Controls[0].Controls.AddAt(x.EditIndex + 2, row);

Возможно, вам просто понадобятся части new GridViewRow и new TableCell.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...