我如何显示图像按钮基于字段数据在asp.net gridview

本文关键字:数据 字段 asp gridview net 于字段 按钮 何显示 显示 图像 | 更新日期: 2023-09-27 18:18:51

我喜欢在数据库ASP中添加图像按钮。. NET 4.0 GridView为布尔字段的方式,如果它是真显示一个图像,如果它是假显示另一个图像。

ImageField没有给我点击能力,我不知道如何根据字段值改变按钮上的图像。使用Button触发器,我将运行一个存储过程来更改布尔字段的状态。

我用c#编程

我怎样才能做到这一点?

我如何显示图像按钮基于字段数据在asp.net gridview

第一步:-

创建一个模板字段,并将图像按钮放在其中。

<asp:TemplateField>
    <ItemTemplate>
        <asp:ImageButton runat="server" ID="myImageButton" />
    </ItemTemplate>
</asp:TemplateField>

步骤2:-

然后在您的RowDataBound事件检查条件并分配图像url

protected void gridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        ImageButton myImageButton = e.Row.FindControl("myImageButton") as ImageButton;
        if (myImageButton != null)
        {
            if (Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "myBooleanField")))
            {
                myImageButton.ImageUrl = "image1.jpg";
            }
            else
            {
                myImageButton.ImageUrl = "image2.jpg";
            }
        }
    }
}

也是一个非常简单和直接的解决方案是使用两个图像字段,并隐藏一个或另一个取决于您的布尔值

首先使用Template Field并放置一个ImageButton,然后为ImageUrl属性分配一个code Behind方法,该方法将根据'Status'返回图像的路径。还可以使用CommandArgument属性来存储Status,当按钮被单击时,可以使用它来将'Status'更新到数据库。

<asp:TemplateField>
   <ItemTemplate>
    <asp:ImageButton runat="server" ID="ImgBtnStatus" CommandArgument='<%# Eval("Status") %>'  ImageUrl='<%# Bind_Image(Eval("Status").ToString()) %>' />
     </ItemTemplate>
</asp:TemplateField>

这里我们调用了一个代码隐藏方法,它看起来如下所示:

public string Bind_Image(string Status)
{
    bool status = Convert.ToBoolean(Status);
    // If Status is true , bind the img_true.bmp
    if (status)
    {
        return "~/images/img_true.bmp";
    }
    else
    {
        return "~/images/img_false.bmp";
    }
}