C# 在网格中循环以查找特定列(不在任何网格事件中)
伙计们,我有麻烦了。处理现有代码,并需要在边界内进行更改 需要循环(新创建的)Gridview以查找特定列的值。并使用现有计数器(x)和现有foreach“对行进行迭代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
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++;
}