c# - 根据其他列中的值在 gridview 列中显示图像

标签 c# asp.net visual-studio-2008 gridview

我有一个 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";
                }
            }

它不是在列中不显示任何图像

请推荐一个方法... 谢谢

最佳答案

感谢您的投入,但我得到了答案..就是这样

<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页面中给出一个imageurl,然后在后面的代码中将其修改为任意图像。如果您不在 aspx 页面中提供图片 url,它将无法工作...

关于c# - 根据其他列中的值在 gridview 列中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739292/

相关文章:

c# - "The parameters dictionary contains a null entry for parameter"- 如何修复?

c# - 用于在 Visual Studio C# 中展开选定折叠 block /区域的快捷键

c# - 如何使用控制面板程序功能中显示的复选框

c# - 使用 ManagementScope (WMI) - 有什么问题吗?

c# - 如何在 Winform 中使用多线程?

c# - 如何使用四元数增加Unity的旋转角度

c# - 如何在c#中制作自定义进度条

html - CSS3 Marquee 不显示 .marquee 容器中的所有 html 元素

c++ - Visual Studio 9 : Display Linker Search Paths

c# - 转换表情