2014-10-07 46 views
0

我有DataGrid,我找不到ItemDataBoundDataGrid的第一行。DataGrid的第一行在Asp.net中的ItemDataBound上找不到c#

其工作正常與其他續行。的ItemDataBound

CS代碼 -

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);"; 
      } 
     } 
} 

請幫我出這個問題。 謝謝

+1

爲什麼你循環'ItemDataBound'中的所有項目,這對每個項目都會觸發?順便說一句,'DgrMemberList.Items'不會返回頁眉或頁腳,只有'Item'或'AlternatingItem',而不是'ItemDataBound',每個項目類型都是三元組。 – 2014-10-07 08:28:50

+0

在e.Item.Cells [2]有很多類型的交付,如'STK,KO,KWF,JSK'等,我綁定了'aDelivery.HRef'只爲'STK'文本 – Gitz 2014-10-07 08:31:41

+0

你做了foreach循環但你在哪裏使用「物品」? – Neel 2014-10-07 08:33:36

回答

1

首先你不需要使用循環在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);"; 
     } 

} 
+0

hehe現在工作正常,如果你不介意,你可以請解釋,如果我使用'DgrMemberList_ItemDataBound'什麼是正在發生的代碼? – Gitz 2014-10-07 09:12:46

+0

是的,沒有必要的foreach循環@GarimaRawat – Neel 2014-10-07 10:20:05

+0

@Neel有時候心靈會以另一種方式發生我的dis問題發生:D,Btw感謝您的幫助 – Gitz 2014-10-07 10:47:57

相關問題