首页  ·  知识 ·  云计算
使用ClientID获取服务器端控件在客户端的ID
Dnawo   http://www.mzwu.com/  综合  编辑:德仔   图片来源:网络
在ASP.NET中,在某些情况下,对于一些服务器控件[1],.NET会在客户端按一定的规律生成其客户端ID,这就造成控件的客户端ID和服务器端ID不一样,此时
在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 $(id){ return document.getElementById(id); }
    function Show(id){ alert($(id).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;
 
本文作者:Dnawo 来源: http://www.mzwu.com/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读