欢迎光临

木子屋

标题: 使用ClientID获取服务器端控件在客户端的ID

作者: dnawo

日期: 2010-04-20 02:47 PM

分类: Web编程

内容: 在ASP.NET中，在某些情况下，对于一些服务器控件[1]，.NET会在客户端按一定的规律生成其客户端ID，这就造成控件的客户端ID和服务器端ID不一样，此时若要在客户端脚本中使用该控件，就必需先知道其客户端ID。幸好.NET为每个控件都提供了一个ClientID属性，该属性值即为控件在客户端的ID，下边是一个使用示例：
复制内容到剪贴板 程序代码<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (SqlConnection conn = new SqlConnection("server=(local);database=Northwind;user id=sa;password=sa;"))
{
using (SqlDataAdapter adapter = new SqlDataAdapter("Select TOP 10 * FROM Products", conn))
{
DataTable table = new DataTable();
adapter.Fill(table);
DataList1.DataSource = table;
DataList1.DataBind();
}
}

}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>ClientID示例-Mzwu.Com</title>
<script type="text/javascript">
function { return document.getElementById(id); }
function Show(id){ alert(.innerHTML); }
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ProductName") %>'></asp:Label>
<input type="button" value="button" onclick="Show('<%# ((Label)Container.FindControl("Label1")).ClientID%>')" />
</ItemTemplate>
</asp:DataList>
</div>
</form>
</body>
</html>
说明
[1].例如在用户控件中使用的控件，在DataList的ItemTemplate模板中使用的控件等等，.NET都会按一定的规律生成其客户端ID；

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.891 ms

返回

标题: 使用ClientID获取服务器端控件在客户端的ID

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.891 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.953 ms

返回