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,顺便说一句,谢谢你的帮助