我有一个数据列表,其图像旁边有一个超链接。单击时我需要超链接来更改图像。我点击时已经有了要更改的图像,但我不确定如何在超链接点击时更改图像。我不知道从哪里开始。
<asp:DataList ID="DataList1" runat="server" CellPadding="0" DataSourceID="SqlDataSource1" ForeColor="#333333" Height="350px">
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
<ItemTemplate>
<asp:ImageButton style="padding:0;margin:0;" ID="btnAdd" runat="server" ImageUrl="~/Images/add.png" OnCommand="ImgList_Command" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="FoodLink_Click"><asp:Label ID="Long_DescLabel" runat="server" Text='<%# Eval("Long_Desc") %>' style="line-height:32px;vertical-align: top;height:32px;" Font-Size="Small" /></asp:LinkButton>
</ItemTemplate>
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:DataList>
在后端我只有:
protected void FoodLink_Click(object sender, EventArgs e)
{
test.Visible = true;
tof.Visible = true;
}
protected void ImgList_Command(object sender, CommandEventArgs e)
{
((ImageButton)sender).ImageUrl = "~/Images/removefood.png";
}
我不知道从哪里开始。我假设我需要使用另一个命令,但是如何获得正确的图像ID?
答案 0 :(得分:0)
据我所知,你需要在图像和链接按钮之间建立一个共同的元素(我假设你试图在链接按钮点击上获得相同的效果,如图像按钮点击)。
首先想到的最简单的事情是为两个相关按钮采用命名约定。例如,imageBtnX适用于linkBtnX,imageBtnY适用于linkBtnY。
答案 1 :(得分:0)
这是我如何做到的;我从linkbutton获得了clientid数字,并使用它在图像按钮上设置了属性。
当然代码需要清理并检查以确保它是一个整数,因此它不会抛出错误,但它可以工作。
protected void FoodLink_Click(object sender, EventArgs e)
{
test.Visible = true;
tof.Visible = true;
string indexnu = ((LinkButton)sender).ClientID.ToString();
int gnum = Convert.ToInt16(indexnu.Substring(indexnu.LastIndexOf("_") + 1, indexnu.Length - indexnu.LastIndexOf("_") - 1));
ImageButton imgBtn = (ImageButton)DataList1.Items[gnum].FindControl("btnAdd");
imgBtn.ImageUrl = "~/images/removefood.png";
}