2013-04-04 2 views
3

Я прочитал определение из msdn (см. Ниже), которое мне не помогло. Я динамически добавляю gridviewrows в свой gridview и не знаю, для чего нужны параметры.Параметры конструктора GridViewRow, что они точно?

public GridViewRow(
    int rowIndex, 
    int dataItemIndex, 
    DataControlRowType rowType, 
    DataControlRowState rowState 
) 

RowIndex Тип: System.Int32 Индекс объекта GridViewRow в коллекции Строки в GridView контроля.

dataItemIndex Тип: System.Int32 Индекс DataItem в , лежащей в основе DataSet.

ROWTYPE Тип: System.Web.UI.WebControls.DataControlRowType Одно из значений перечисления DataControlRowType .

RowState Тип: System.Web.UI.WebControls.DataControlRowState Поразрядного комбинация значений перечисления DataControlRowState.

+0

rowindex даст вам текущую вставленную строку в gridview – user1102001

+0

@ user1102001 и добавив, что в качестве параметра, как это влияет на вновь созданный gridviewrow? – HOY

+0

есть много способов добавить строки в gridview, но rowindex не понадобится для этого – user1102001

ответ

1

Эти параметры (и этот конструктор в целом) очень редко нужно использовать. Они предназначены для создания GridView, а это строки, полностью вручную - что-то довольно ненужное, учитывая мощную функциональность привязки данных, встроенную в этот элемент управления. Позволь мне объяснить.

Как правило, вы должны создать источник данных (DataTable, некоторый общий список настраиваемого класса и т. Д.), А затем назначить этот источник данных для GridView и связать его. Это автоматизирует такие вещи, как установка RowIndex и DataItemIndex. Он также позволяет использовать ряд других удобных функций (сортировка, подкачка, редактирование/удаление). См. GridView Web Server Control Overview для отличной работы по умолчанию.

Таким образом, я бы сказал, что вы должны добавить новую строку в свой источник данных (что бы это ни было), а затем установить обновленный источник данных в свой объект DataSource GridView и вызвать GridView.DataBind(). У вас будет новая строка, и вам не придется связываться с созданием объектов GridViewRow вручную.

Но, чтобы ответить на ваш вопрос:

  • int rowIndex: Индекс (позиции) в строке вы создаете будет занимать в GridView.
  • int dataItemIndex: Индекс этих данных в вашем базовом источнике данных (DataTable или общий список или что бы вы ни использовали).
  • DataControlRowType rowType: Это тип строки - строка с данными, заголовком, нижним колонтитулом и т. Д. (full list here).
  • DataControlRowState rowState: «Состояние» строка находится в режиме редактирования, режиме только для чтения и т. Д. (full list here).
1
for example to add into gridview you can use datatable... 

     public static DataTable TBCONRCVD;  

     FindRowNo = GoodsRcvdGridview.Items.Count; 
     DataRow ROW = TBCONRCVD.NewRow(); 

     ROW["PRDCT_RCVD_PRDCT_CODE"] = TxtSearch.Text; 
     ROW["PRDCT_RCVD_QTY"] = txtQty.Text.Trim(); 
     ROW["PRDCT_RCVD_COST"] = TXTUNITPRCE.Text.Trim(); 
     ROW["PRDCT_CRNT_SLNG_PRCE"] = SELL_PRCE.ToString(); 
     ROW["PRDCT_RCVD_VAT_CODE"] = TXTVATCODE.Text.Trim(); 
     ROW["PRDCT_RCVD_DISC"] = txtDscntPrcntge.Text; 


     TBCONRCVD.Rows.Add(ROW); 
     GoodsRcvdGridview.DataSource = TBCONRCVD; 
     GoodsRcvdGridview.DataBind();