<asp:TemplateColumn HeaderText="栏目名称">
<ItemTemplate>
<TABLE id="Table1" style="" cellSpacing="0" cellPadding="0" border="0">
<TR>
<TD>
<asp:Image id=Image1 runat="server" ImageUrl="<% =imgurl%>">
</asp:Image>
<TD>
<asp:HyperLink id=HyperLink1 runat="server" text='<%# DataBinder.Eval(Container,"DataItem.Column_Name").ToString() %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.Column_Name","column_add.aspx?ID={0}") %>' Target="main">HyperLink</asp:HyperLink></TD>
</TR>
</TABLE>
</ItemTemplate>
我设置了一个模板列,需要传值(imgurl),在后台的程序为:
private void bding()
{
string imgurl="";
//string imgurl1="";
Class1 cl=new Class1();
DataSet ds=cl.sede("select * from tb_column ORDER BY column_path,Column_Order","tb_column");

DataGrid1.DataSource=ds.Tables["tb_column"].DefaultView;
DataGrid1.DataBind();

for(int i=0;i<DataGrid1.Items.Count;i++)
{
string id=DataGrid1.Items[i].Cells[0].Text.ToString().Trim();
int depth=Convert.ToInt32(DataGrid1.Items[i].Cells[7].Text.ToString().Trim());
string parent_id=DataGrid1.Items[i].Cells[5].Text.ToString().Trim();
string column_path=DataGrid1.Items[i].Cells[6].Text.ToString().Trim();
int order=Convert.ToInt32(DataGrid1.Items[i].Cells[8].Text.ToString().Trim());
DataSet bs=cl.sede("select aa=count(*) from tb_column where parent_id='"+id+"'","tb_column");
if(depth==1)
{
if(bs.Tables["tb_column"].Rows.Count==0)
{
imgurl="/images/arror/tree_folder3.gif";
}
else
{
imgurl="/images/arror/tree_folder4.gif";
}
}
if(depth>1)
{
if(bs.Tables["tb_column"].Rows.Count==0)
{
imgurl="/images/arror/tree_line2.gif"+"|"+"/images/arror/tree_folder3.gif";

}
else
{ imgurl="/images/arror/tree_line2.gif"+"|"+"/images/arror/tree_folder4.gif";

}
}
}
  }
可是我执行后没有传过值,页面的代码还是<asp:Image id=Image1 runat="server" ImageUrl="<% =imgurl%>">
</asp:Image>
这是为什么啊!