我想通过在datagrid_ItemDataBound事件里得到<%# DataBinder.Eval(Container.DataItem,"path" )%>当前的值,还有得到<%# DataBinder.Eval(Container.DataItem,"path" )%>值之后向附值Image1.ImageUrl<asp:DataGrid ID="mydatagrid" runat="server" AutoGenerateColumns="False" Width="100%"
ShowHeader="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnItemDataBound="mydatagrid_ItemDataBound">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<table>
<tr>
<td rowspan="2" style="text-align: center;">
<div>
<asp:Label Visible="false" ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"path" )%>'></asp:Label>
<asp:Image ID="Image1" runat="server" /> </div>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditItemStyle BackColor="#999999" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
</asp:DataGrid>
protected void mydatagrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
foreach (Control c in e.Item.FindControl("Label1").Controls)
{
Label label = (Label)c;
string path = label.Text;
}
}
ShowHeader="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnItemDataBound="mydatagrid_ItemDataBound">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<table>
<tr>
<td rowspan="2" style="text-align: center;">
<div>
<asp:Label Visible="false" ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"path" )%>'></asp:Label>
<asp:Image ID="Image1" runat="server" /> </div>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditItemStyle BackColor="#999999" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
</asp:DataGrid>
protected void mydatagrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
foreach (Control c in e.Item.FindControl("Label1").Controls)
{
Label label = (Label)c;
string path = label.Text;
}
}
解决方案 »
- backgroundWorker中,关于ReportProgress,一定需要先强制转换吗?
- LINQ TO XML 获取根节点属性 在线等
- remoting返回实现了IList接口的集合对象,无法在客户端的combobox.datasource中绑定的问题
- 怎样用程序或者SQL语句实现表结构的生成?包括主键,外键关联以及约束等关系也要生成
- 项目升级到2005后,为什么控件风格还是2003的
- 关于 vs2005 TreeView的数据绑定问题
- sql server在xp sp2中无法被.net程序访问!报错说没有sql服务器,或者访问被拒绝!
- 论坛的回复页面怎么做出来的?用的是什么控件
- 如何根据datagrid每一行的内容隐藏列?
- 请帮我看一下这个加/解密程序错在哪?
- Button button6 = new Button();如何在制定位置创建
- 正则表达式
foreach (Control c in e.Item.FindControl("Label1"))
{
Label label = (Label)c;
string path = label.Text;
}
if (e.Item.ItemIndex > 0)
把表头过滤掉就可以了,因为表头里没有Label1还有:e.Item.FindControl("Label1")找到的就是Label1了,不需要再遍历找他的子控件这样写吧
if (e.Item.ItemIndex > 0)
{ Label label = e.Item.FindControl("Label1") as Label;
if(label != null)
string path = label.Text;
}
return;
if(e.Item.ItemIndex<0)
return;
Label label = e.Item.FindControl("Label1") as Label;
if(label != null)
string path = label.Text;
{
foreach (Control c in e.Item.FindControl("Label1").Controls)
{
Label label = (Label)c;
string path = label.Text;
}
}ITEMPLATE 模板是内容行,而datagrid_ItemDataBound 事件是从HEADER 模板,到FOOTER 开始遍历的...
这样,试一下
protected void mydatagrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
{
Label lbl= e.Item.FindControl("Label1") as Label;
if(lbl!=null)
{
string path = lbl.Text;
}
}
}