通过网格循环查找特定列(不在任何网格事件中)

通过网格循环查找特定列(不在任何网格事件中)

问题描述:

我在这里修复了一些家伙。处理现有的代码并需要在边界内进行更改。通过网格循环查找特定列(不在任何网格事件中)

需要循环通过(新创建的)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++;     
} 

基本上我需要做的是,我需要利用现有的增量器(x)的递增行,并获得第一列的数据,每一行。

目前该过程没有在新创建的foreach循环

我可能会混淆你们对此解释有点流动,如果需要任何进一步的信息,请让我知道。

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

Screenshot of the Grid

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

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

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

,然后阅读后面

int cnt = 0; 
foreach (GridViewRow row in grdReleaseUserPending.Rows) 
{ 
    selectID = Convert.ToInt32(grdReleaseUserPending.DataKeys[cnt].Values[0]); 
    cnt++; 
} 
+0

感谢您的答复@VDWWD在代码中的关键,但问题仍然存在。该过程仍然不会在foreach循环中流动。 :( – theLearner

+0

然后''grdReleaseUserPending'或者'tjSelectFields'中的KeyValuePairs没有行设置断点和检查 – VDWWD

+0

Grid @VDWWD有两行(如快照中所示)。 KeyValuePairs ...双重检查它 – theLearner