我有一个gridview,它有一个复选框列和一个图像列
现在,如果选中该复选框,则图像列应显示绿色勾选图像,如果未选中复选框,则应在连续行中显示错误的图像图标。
.aspx页面有
<asp:TemplateField HeaderText="Backup Session Status"
SortExpression="backupsessionstatus">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Bind("backupsessionstatus") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Bind("backupsessionstatus") %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Backup Session Status">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image1" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
和.cs文件是:
foreach (GridViewRow myRow in GridView1.Rows)
{
Image img1 = (Image)myRow.FindControl("Image1");
CheckBox chkbox1 = (CheckBox)myRow.FindControl("CheckBox1");
if (chkbox1.Checked)
{
img1.ImageUrl = "greenimage.jpg";
}
else
{
img1.ImageUrl = "redimage.jpg";
}
}
它没有在列
中显示任何图像请建议一种方式...... 感谢
答案 0 :(得分:4)
感谢输入,但我得到了答案..这就是
<asp:TemplateField HeaderText="Backup Session Status"
SortExpression="backupsessionstatus">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Bind("backupsessionstatus") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"
Checked='<%# Bind("backupsessionstatus") %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Backup Session Status">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl="~/NewFolder1/1258341827_tick.png"/>
</ItemTemplate>
</asp:TemplateField>
这是.CS代码
foreach (GridViewRow myRow in GridView1.Rows)
{
Image img1 = (Image)myRow.FindControl("Image1");
CheckBox chkbox1 = (CheckBox)myRow.FindControl("CheckBox1");
if (chkbox1.Checked)
{
img1.ImageUrl = "~/greenimage.jpg";
}
else
{
img1.ImageUrl = "~/redimage.jpg";
}
}
我了解到你必须在aspx页面中提供一个图像,然后将其修改为后面代码中的任何图像。如果你不在aspx页面中提供图片网址,那就不行了......
答案 1 :(得分:1)
您是否在调试中逐步完成了代码并确保您的foreach
例程正在按预期运行?总是首先检查明显的...你的图像路径是否正确?没有“/”表示它正在寻找相对于加载页面的文件夹的图像。
答案 2 :(得分:1)
尝试在OnRowDataBound
的{{1}}事件中切换图片网址。
GridView