C# 在Asp.net c中的ItemDataBound上找不到DataGrid的第一行#

C# 在Asp.net c中的ItemDataBound上找不到DataGrid的第一行#,c#,asp.net,C#,Asp.net,我有一个DataGrid,在ItemDataBound上找不到DataGrid的第一行 它可以与其他行一起工作 CSItemDataBound的代码是- protected void DgrMemberList_ItemDataBound(object sender, DataGridItemEventArgs e) { foreach (DataGridItem item in DgrMemberList.Items) { Ht

我有一个
DataGrid
,在
ItemDataBound
上找不到
DataGrid
的第一行

它可以与其他行一起工作

CS
ItemDataBound的代码是-

 protected void DgrMemberList_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        foreach (DataGridItem item in DgrMemberList.Items)
        {
            HtmlAnchor aDelivery = e.Item.FindControl("aDelivery") as HtmlAnchor;
            if (e.Item.Cells[2].Text.ToString() == "STK")
            {
                aDelivery.HRef = "CreateDownloadImageSubmit.aspx?OID=" + e.Item.Cells[0].Text;
            }
            else
            {
                aDelivery.HRef = "javascript:void(0);";
            }
        }
}
请帮我解决这个问题。
谢谢

首先,您不需要在
DgrMemberList_ItemDataBound
中使用循环。此事件将对网格中的每一行执行

 protected void DgrMemberList_ItemDataBound(object sender, DataGridItemEventArgs e)
 {
      if (e.Row.DataItem == null)
          return;

      HtmlAnchor aDelivery = e.Item.FindControl("aDelivery") as HtmlAnchor;
      if (e.Item.Cells[2].Text.ToString() == "STK")
      {
           aDelivery.HRef = "CreateDownloadImageSubmit.aspx?OID=" + e.Item.Cells[0].Text;
      }
      else
      {
           aDelivery.HRef = "javascript:void(0);";
      }

 }

为什么要循环
ItemDataBound
中的所有项目,而每个项目都会被触发?顺便说一句,
DgrMemberList.Items
不返回页眉或页脚,只返回
Item
AlternatingItem
,而不是为每个Item-type触发的
ItemDataBound
,JSK'etc和我绑定
adeivery.HRef
仅用于您为每个循环生成的'STK'文本,但您在哪里使用“item”?实际上,我想检查列值的文本,如果值为'STK',则
的链接与id绑定,否则其绑定
'javascript:void(0);'
aDelivery.HRef=String.Format(“CreateDownloadImageSubmit.aspx?OID={0}”,e.Item.Cells[0].Text)@Garimarawathere现在工作正常如果你不介意的话,你能解释一下我是否使用了
DgrMemberList\u ItemDataBound
代码到底是怎么回事吗?是的,不需要每个循环@GarimaRawat@Neel有时候,我的思维会以另一种方式发生:D,顺便说一句,谢谢你的帮助