C# 基于其他列中的值在gridview列中显示图像
我有一个gridview,它有一个复选框列和一个图像列C# 基于其他列中的值在gridview列中显示图像,c#,asp.net,visual-studio-2008,gridview,C#,Asp.net,Visual Studio 2008,Gridview,我有一个gridview,它有一个复选框列和一个图像列 现在,如果选中复选框,则图像列应显示绿色勾号图像,如果未选中复选框,则应在连续行中显示错误的图像图标 .aspx页面已关闭 <asp:TemplateField HeaderText="Backup Session Status" SortExpression="backupsessionstatus"> <EditItemTemplate>
现在,如果选中复选框,则图像列应显示绿色勾号图像,如果未选中复选框,则应在连续行中显示错误的图像图标 .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>
它不会在列中显示任何图像
请建议一种方法。。。
谢谢您是否在调试过程中逐步完成了代码,并确保您的
foreach
例程按预期运行?总是先检查明显的。。。你的图像路径正确吗?否“/”表示它正在查找与加载页面的文件夹相关的图像。尝试在GridView
的OnRowDataBound
事件中切换图像url
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
CheckBox chk = (CheckBox)e.Row.FindControl("CheckBox1");
if (chk != null)
{
Image img1 = (Image)e.Row.FindControl("Image1");
if (chk.Checked)
img1.ImageUrl = "greenimage.jpg";
else
img1.ImageUrl = "redimage.jpg";
}
}
谢谢你的意见,但我得到了答案。。这是怎么回事
<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>
我了解到,您必须在aspx页面中提供一个imageurl,然后将其修改为代码中的任何图像。如果您不在aspx页面中提供图像url,它将无法工作…“在连续行中显示错误的图像图标”?你是指连续的列还是行?您编写了建议的“列”。发布的cs代码,它与哪个事件有关?我很确定那不是真的。
<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>
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";
}
}