【问题标题】:Loop through a Grid to find a specific column (Not in any Grid Events)遍历网格以查找特定列(不在任何网格事件中)
【发布时间】:2017-06-23 08:37:07
【问题描述】:

伙计们,我正在解决这个问题。处理现有代码并需要在边界内进行更改。

需要遍历(新创建的)Gridview 来查找特定列的值。并使用 现有的 counter(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) 来递增 Row 并获取每一行的第一列数据。

当前进程没有在新创建的 foreach 循环中流动

我可能对你们的解释有点困惑,如果需要任何进一步的信息,请告诉我。

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

【问题讨论】:

    标签: c# asp.net gridview foreach ado


    【解决方案1】:

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

    但是,您可以将 DataKeyNames 添加到 GridView 并阅读这些内容。

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

    然后读取后面代码中的key

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

    【讨论】:

    • 感谢@VDWWD 的回复,但问题仍然存在。该过程仍然没有在 foreach 循环中流动。 :(
    • 那么grdReleaseUserPending中没有行,tjSelectFields中没有KeyValuePairs。设置断点并检查。
    • Grid @VDWWD 中有 2 行。 (如快照所示)。在 KeyValuePairs 中获取相同的内容...双重检查
    • 您是否尝试在调用 GridView 上的 DataBind() 之前进行循环?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2012-04-06
    • 2016-06-14
    • 2013-07-24
    • 2013-03-19
    相关资源
    最近更新 更多