Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将栅格视图与文本框绑定的步骤_C#_Asp.net_Gridview - Fatal编程技术网

C# 将栅格视图与文本框绑定的步骤

C# 将栅格视图与文本框绑定的步骤,c#,asp.net,gridview,C#,Asp.net,Gridview,在下面的代码中,我有一个会话值,我必须在其中传递到网格并绑定这些值。网格由文本框组成,如果会话值为2,则应该有两行文本框。我尝试过,它抛出的索引超出范围。请帮助我解决此问题 int GoodsReceivedNoteID = (int)Session["GoodsReceivedNoteID"]; for (int iRow = 0; iRow < GoodsReceivedNoteID; iRow++) { TextBox txtFreightCharges = (TextBox

在下面的代码中,我有一个会话值,我必须在其中传递到网格并绑定这些值。网格由文本框组成,如果会话值为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");
}
int GoodsReceivedNoteID=(int)会话[“GoodsReceivedNoteID”];
for(int-iRow=0;iRow
不要使用
行[index]。单元格[6]。FindControl
,单元格不是
GridViewRow
模板字段中控件的
命名容器,而是行本身。我也不明白会话值和网格中的行数之间的关系。这更简单,可读性更强:

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
-行(这听起来是错误的,因为ID不是计数器):

for(int i=0;i
gvGRN.行是否有值?是否所有内容都应该进入单元格6?然后你就覆盖了一切。尝试将中的单元格[6]替换为单元格[n],其中n=0到4
for(int i = 0; i < GoodsReceivedNoteID; i++))
{
    GridViewRow row = gvGRN.Rows[i];
    TextBox txtFreightCharges = (TextBox)row.FindControl("txtFreightCharges");
    // ...
}