如何解决在 GridView 的 ItemTemplate 中更改 ImageButton 图像源
我在 ImageButton
中有 ItemTemplate
内部 GridView
我想根据我之前准备好的条件更改图像 URL“图像源”。简而言之,当我单击 ImageButton 时,根据我的条件更改它的图像源“For the imageButton”。这是我下面的代码:
ASP.NET GridView 代码:
<asp:GridView ID="GridView1" BorderStyle="None" GridLines="None" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="photo_id" HeaderText="photo_id" InsertVisible="False" ReadOnly="True" SortExpression="photo_id" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol"/>
<asp:TemplateField HeaderText="photo_path" SortExpression="photo_path">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("photo_path") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<div class="container-md">
<div class="container">
<asp:Image ID="Image8" runat="server" ImageUrl='<%# Eval("photo_path") %>' CssClass="mx-auto d-block - responsive"/>
<div class="centered">
<asp:ImageButton ID="img_like" CssClass="os" runat="server" ImageUrl="~/images/like.png" OnClick="img_like_Click"></asp:ImageButton>
</div>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="user_id" HeaderText="user_id" SortExpression="user_id" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol"/>
<asp:BoundField DataField="photo_likes" HeaderText="photo_likes" SortExpression="photo_likes" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol"/>
</Columns>
</asp:GridView>
带有 If 语句条件的“C#”背后的代码:
protected void img_like_Click(object sender,ImageClickEventArgs e)
{
ImageButton btn = (ImageButton)sender;
GridViewRow gvr = (GridViewRow)btn.NamingContainer;
if (isPhotoLiked(Convert.ToInt32(gvr.Cells[0])))
{
// CHANGE IMAGE TO FILLED HEART IF TRUE
} else
{
// CHANGE IMAGE TO EMPTY HEART IF FALSE
}
}
需要时生成条件的方法:
public bool isPhotoLiked(int photoId)
{
bool isLiked = false;
SqlConnection con = new SqlConnection("server=DESKTOP-N1LLATD\\SQLEXPRESS;database=final;integrated security=sspi");
string sql = "select isLiked from Likes where photo_id=@photo_id";
SqlCommand cmd_add = new SqlCommand(sql,con);
cmd_add.Parameters.AddWithValue("@photo_id",photoId);
SqlDataReader read;
con.Open();
read = cmd_add.ExecuteReader();
if (read.HasRows)
{
if (read.Read())
{
isLiked = Convert.ToBoolean(read["isLiked"].ToString());
con.Close();
}
}
return isLiked;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。