将网格视图与文本框绑定
本文关键字:绑定 文本 网格 视图 | 更新日期: 2023-09-27 18:25:36
在下面的代码中,我有一个会话值,我必须在其中传递到网格并绑定这些值。网格由文本框组成。如果会话值为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");
}
Rows[index].Cells[6].FindControl
,单元格不是GridViewRow
的TemplateField中控件的NamingContainer
,而是行本身。我也不理解您的会话值和网格中的行数之间的关系。这更简单可读:
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 < GoodsReceivedNoteID; i++))
{
GridViewRow row = gvGRN.Rows[i];
TextBox txtFreightCharges = (TextBox)row.FindControl("txtFreightCharges");
// ...
}