gpt4 book ai didi

javascript - 如何在 Listview 中找到控件的 ClientId?

转载 作者:行者123 更新时间:2023-11-29 15:01:52 24 4
gpt4 key购买 nike

这个问题与 How do I find the Client ID of control within an ASP.NET GridView?

但是我使用的是 ListView 和标签:

<ItemTemplate>
<asp:ImageButton ImageUrl="Resources/info.png" ToolTip="info" OnClientClick="toggle('<%#((label)Container).FindControl( "PresetUploadDescription").ClientID %>');" ID="Description" runat="server"/>
<asp:Label ID="UploadDescription" BorderStyle="Solid" BorderColor="Goldenrod" BorderWidth="1" runat="server" Width="40em" CssClass="sc-Upload-description" Text='<%# Eval("Description") %>'></asp:Label>
....

我在 findcontrol() 函数中收到“服务器标记格式不正确”...知道为什么吗?我已经尝试了“标签”和“控制”转换...

最佳答案

据我所知,有两种方法可以完成您想要做的事情。要么使用 asp:ImageButton服务器控制并连接 onclick使用 OnItemDataBound 的客户端事件事件,或者简单地使用 <input type="image" />控制并连接 ClientID排队。以下示例展示了这两种方法:

<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title>OnClick Test</title></head>
<body>
<form id="form1" runat="server">
<div>
<asp:ListView ID="lv1" OnItemDataBound="lv1_ItemDataBound" runat="server">
<ItemTemplate>
<asp:Label ID="label1" Text="<%# Container.DataItem %>" runat="server" />
<asp:ImageButton ID="btn1"
ImageUrl="myimage.jpg"
AlternateText="Show Text"
runat="server" />
<input type="image" src="myimage.jpg" alt="Show Text"
onclick="alert(document.getElementById('<%# Container.FindControl("label1").ClientID %>').innerText);"
/>
<br />
</ItemTemplate>
</asp:ListView>
</div>
</form>
</body>
</html>
<script runat="server">
public void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack) return;
lv1.DataSource = new[] {"Manny", "Moe", "Jack"};
lv1.DataBind();
}

protected void lv1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
var label1 = e.Item.FindControl("label1") as Label;
var btn1 = e.Item.FindControl("btn1") as ImageButton;
if (label1 == null || btn1 == null) return;
btn1.Attributes.Add("onclick", "alert(document.getElementById('" + label1.ClientID + "').innerText);");
}
</script>

关于javascript - 如何在 Listview 中找到控件的 ClientId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com