我如何显示图像按钮基于字段数据在asp.net gridview
本文关键字:数据 字段 asp gridview net 于字段 按钮 何显示 显示 图像 | 更新日期: 2023-09-27 18:18:51
我喜欢在数据库ASP中添加图像按钮。. NET 4.0 GridView
为布尔字段的方式,如果它是真显示一个图像,如果它是假显示另一个图像。
ImageField
没有给我点击能力,我不知道如何根据字段值改变按钮上的图像。使用Button触发器,我将运行一个存储过程来更改布尔字段的状态。
我用c#编程
我怎样才能做到这一点?
第一步:-
创建一个模板字段,并将图像按钮放在其中。
<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";
}
}