Добавить заголовки VB.net/asp.net gridview? - PullRequest
3 голосов
/ 08 декабря 2010

Я знаю, что на этот вопрос был дан ответ, в C #, и я пытался конвертировать и заставить его работать, но не удалось?

Я был бы очень признателен, если бы вы помогли

image

это изображение из этого вопроса, я хочу сделать нечто подобное.

вот ссылка ASP.NET GridView вторая строка заголовка, чтобы охватить строку основного заголовка

Dim d As Date = Date.Today
        d = d.AddDays(-1)
        Label1.Text = d

        'connects to datawarehouse
        saocmd1.Connection = conn1
        conn1.Open()

        Dim ds As New DataSet

        'selects sql query
        'saocmd1.CommandText = MYQUERY"
        saoda1.Fill(saods1, "salesasoftable")

        Dim row As New GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal)

        Dim left As TableCell = New TableHeaderCell()
        left.ColumnSpan = 3
        row.Cells.Add(left)

        Dim totals As TableCell = New TableHeaderCell()
        totals.ColumnSpan = gridview1.Columns.Count - 3
        totals.Text = "Totals"
        row.Cells.Add(totals)

моя ошибка

Specified argument was out of the range of valid values.
Parameter name: index 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index

Source Error: 


Line 54:        row.Cells.Add(totals)
Line 55: 
Line 56:        Dim t As Table = TryCast(gridview1.Controls(0), Table)
Line 57:        If t IsNot Nothing Then
Line 58:            t.Rows.AddAt(0, row)

Ответ

Dim row As New GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal)

'spanned cell that will span the columns I don't want to give the additional header 
Dim left As TableCell = New TableHeaderCell()
left.ColumnSpan = 6
row.Cells.Add(left)

'spanned cell that will span the columns i want to give the additional header
Dim totals As TableCell = New TableHeaderCell()
totals.ColumnSpan = myGridView.Columns.Count - 3
totals.Text = "Additional Header"
row.Cells.Add(totals)

'Add the new row to the gridview as the master header row
'A table is the only Control (index[0]) in a GridView
DirectCast(myGridView.Controls(0), Table).Rows.AddAt(0, row)

Ответы [ 2 ]

3 голосов
/ 08 декабря 2010

Из вашего вопроса просто кажется, что у вас возникли проблемы с преобразованием c # в vb.net.Вот 2 онлайн-конвертера, которые могут помочь.

http://www.developerfusion.com/tools/convert/csharp-to-vb/

http://converter.telerik.com/

Или материальное программное обеспечение имеет конвертер, который может конвертировать всепроекты, но обратите внимание, что это не бесплатно.

0 голосов
/ 08 декабря 2010

Самый простой способ - обработать это в событии RowCreated.Вы бы протестировали обрабатываемый RowType, и если это заголовок, то вы:

  1. Очистите соответствующие ячейки строк.
  2. Настройте диапазон строк первой ячейкидо 2 (в случае вашего изображения: кол-во отправлено).
  3. Удалите ячейку строки, следующую сразу за ней (в случае вашего изображения: общий объем продаж).
  4. Создайте новую таблицу для просмотракак тот, который вы хотите, как показано.
  5. Вставьте новую таблицу в нужную ячейку строки.

Если у вас уже есть решение, которое вы хотите использовать, но оно на C #, и выне можете конвертировать, попробуйте этот инструмент: http://www.developerfusion.com/tools/convert/csharp-to-vb/

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