C# 在网格中循环以查找特定列(不在任何网格事件中)

C# 在网格中循环以查找特定列(不在任何网格事件中),c#,asp.net,gridview,foreach,ado,C#,Asp.net,Gridview,Foreach,Ado,伙计们,我有麻烦了。处理现有代码,并需要在边界内进行更改 需要循环(新创建的)Gridview以查找特定列的值。并使用现有计数器(x)和现有foreach“对行进行迭代 int x = 0; foreach (KeyValuePair<int, object> kvpValues in tjSelectFields.SectionList) { //This is the Code I've tried out. //This is where any new chan

伙计们,我有麻烦了。处理现有代码,并需要在边界内进行更改

需要循环(新创建的)Gridview以查找特定列的值。并使用现有计数器(x)和现有foreach“对行进行迭代

int x = 0;

foreach (KeyValuePair<int, object> kvpValues in tjSelectFields.SectionList)
{
   //This is the Code I've tried out.
   //This is where any new changes are to be added 
     foreach (System.Web.UI.WebControls.GridViewRow row in grdReleaseUserPending.Rows)
     {
        //selectID = grdReleaseUserPending.Rows[x].Cells[1].Text;
          selectID = row.Cells[0].Text;
     }
   //End of New Changes               

    branchID = ((TJSearchRecord)kvpValues.Value).FieldValues["BranchID"];
    acctNbr = ((TJSearchRecord)kvpValues.Value).FieldValues["AcctNbr"];
    txnSeqNbr = ((TJSearchRecord)kvpValues.Value).FieldValues["TxnSeqNbr"];

    txnsList = "'" + selectID + "|" + branchID + "|" + acctNbr + "|" + txnSeqNbr + "'";

    scriptTxnList.Append("oReleaseUserAuthPending.txnsList[" + x + "] = " + txnsList + ";\n");

    x++;                  
 }
intx=0;
foreach(tjSelectFields.SectionList中的KeyValuePair kvpValues)
{
//这是我试过的代码。
//这是添加任何新更改的地方
foreach(grdReleaseUserPending.Rows中的System.Web.UI.WebControls.GridViewRow行)
{
//selectID=grdReleaseUserPending.Rows[x]。单元格[1]。文本;
selectID=行。单元格[0]。文本;
}
//新变化的结束
branchID=((TJSearchRecord)kvpValues.Value).FieldValues[“branchID”];
acctNbr=((TJSearchRecord)kvpValues.Value).FieldValues[“acctNbr”];
txnSeqNbr=((txearchrecord)kvpValues.Value).FieldValues[“txnSeqNbr”];
txnsList=“””+selectID+“|”+branchID+“|”+acctNbr+“|”+txnSeqNbr+“”;
scriptTxnList.Append(“oReleaseUserAuthPending.txnsList[“+x+”]=“+txnsList+”;\n”);
x++;
}
基本上,我需要做的是,我需要使用现有的incrementor(x)来增加行,并获得每行的第一列数据

当前,该流程未在新创建的foreach循环中流动

我可能会把你们搞糊涂了,如果需要更多的信息,请告诉我

需要帮助找到一种方法来做这件事。 PFA是参考网格的屏幕截图


该列中没有数据,只有一个复选框。当您将数据绑定到GridView时,所有数据类型都将成为字符串(或当为布尔值和自动生成的列时成为复选框)。这就是为什么应该循环源数据而不是GridView内容。很多人在试图从cell.Text获取这些数据类型时,都会在十进制、货币和日期方面犯这种错误

但是,您可以将
DataKeyNames
添加到GridView并读取它们

<asp:GridView ID="grdReleaseUserPending" runat="server" DataKeyNames="selectID">

感谢@VDWWD的回复,但问题仍在继续。该流程仍不在foreach循环中流动:(然后,
grdReleaseUserPending
中没有行,或者
tjSelectFields
中没有键值对。设置断点并检查。网格@VDWWD中有2行。(如快照中所示)。并且在键值对中提取相同的行…再次检查它是否尝试在
DataBind()之前循环)
是否调用GridView上的?
int cnt = 0;
foreach (GridViewRow row in grdReleaseUserPending.Rows)
{
    selectID = Convert.ToInt32(grdReleaseUserPending.DataKeys[cnt].Values[0]);
    cnt++;
}