2014-10-06 3 views
0

В приведенном ниже коде у меня есть значение сеанса, в котором я должен перейти к сетке и привязать значения. Сетка состоит из текстовых полей, если значения сеанса равны 2, должно быть две строки текстового поля . Я попробовал, чтобы этот индекс был вне диапазона. Помогите мне справиться с этой проблемой.Чтобы связать сетку с текстовым полем

int GoodsReceivedNoteID = (int)Session["GoodsReceivedNoteID"]; 
for (int iRow = 0; iRow < GoodsReceivedNoteID; iRow++) 
{ 
    TextBox txtFreightCharges = (TextBox)gvGRN.Rows[iRow].Cells[6].FindControl("txtFreightCharges"); 
    TextBox txtLoadingCost = (TextBox)gvGRN.Rows[iRow].Cells[6].FindControl("txtLoadingCost"); 
    TextBox txtUnloadingCost = (TextBox)gvGRN.Rows[iRow].Cells[6].FindControl("txtUnloadingCost"); 
    TextBox txtInsuranseCost = (TextBox)gvGRN.Rows[iRow].Cells[6].FindControl("txtInsuranseCost"); 
    TextBox txtOtherExpenses = (TextBox)gvGRN.Rows[iRow].Cells[6].FindControl("txtOtherExpenses"); 
} 
+0

ли gvGRN.Rows имеют значение (s)? – VRC

+0

- все, что должно было пойти в камеру 6? то вы просто перезаписываете все. Попробуйте заменить ячейки [6] на ячейки [n], где n = 0 - 4 –

ответ

1

Не используйте Rows[index].Cells[6].FindControl, клетка не NamingContainer из элемента управления в GridViewRow «s TemplateField но сам ряд. Я также не понимаю отношения между вашим значением сеанса и количеством строк в сетке. Это проще и более удобным для чтения:

foreach(GridViewRow row in gvGRN.Rows) 
{ 
    TextBox txtFreightCharges = (TextBox)row.FindControl("txtFreightCharges"); 
    TextBox txtLoadingCost = (TextBox)row.FindControl("txtLoadingCost"); 
    TextBox txtUnloadingCost = (TextBox)row.FindControl("txtUnloadingCost"); 
    TextBox txtInsuranseCost = (TextBox)row.FindControl("txtInsuranseCost"); 
    TextBox txtOtherExpenses = (TextBox)row.FindControl("txtOtherExpenses"); 
} 

Если вы хотите только взять GoodsReceivedNoteID -rows (который звучит неправильно, так как идентификатор не счетчик):

for(int i = 0; i < GoodsReceivedNoteID; i++)) 
{ 
    GridViewRow row = gvGRN.Rows[i]; 
    TextBox txtFreightCharges = (TextBox)row.FindControl("txtFreightCharges"); 
    // ... 
}