0

我在 asp.net 中使用 jquery

我有一个用户控件,其中我有 div 和 div 表和表 tr 和 tr td 和 td 我有标签。

澳交所:

          <div  ID="Container" runat="server" class="dvContainer">
<table ID="Table" class = "Tablecs">
    <thead><tr>
        <td colspan="2">
            <asp:Label ID="lbl1" Text="Swiss" runat="server" /></td>
    </tr>
        </thead>
    <tr>
        <td>ABC</td>
        <td>DEF</td>
    </tr>
    <tr>
        <td><asp:Label ID="lblPA" Text="SUN 12/21 05:04" runat="server" /></td>
        <td ><asp:Label ID="lblPD" Text="SUN 12/21 19:00" runat="server" /></td>
    </tr>
        <tr>
        <td><asp:Label ID="lblAA" Text="SUN 12/21 05:04" runat="server" /></td>
        <td ><asp:Label ID="lblAD" Text="SUN 12/21 19:00" runat="server" /></td>
    </tr>
</table>     

我想将数据动态绑定到这些用户控件。即,将数据绑定到用户控件中的标签。

我的jQuery

            $div.find(".Table").text(oPorts[iCount].Name); // my result is an array of oPorts and i have filed as Name

但这不能正常工作。当我动态检查代码时,它为每个标签生成 SPAN 如何在循环中动态查找 SPAN id 并将数据绑定到标签?

任何帮助表示赞赏。提前致谢。

4

1 回答 1

1

假设您有一个带有如下标记的用户控件

<%@ Control Language="C#" AutoEventWireup="true" 
 CodeBehind="WebUserControl1.ascx.cs" Inherits="DOTNET_FORMS.WebUserControl1" %>

<div id="Container" runat="server" class="dvContainer">
    <table id="Table" class="Tablecs">
        <tr>
            <td>
                <asp:Label ID="lblPA" Text="SUN 12/21 05:04" runat="server" />
            </td>
            <td>
                <asp:Label ID="lblPD" Text="SUN 12/21 19:00" runat="server" />
            </td>
        </tr>
    </table>
</div>

你已经在你的.aspx页面上注册了这个用户控件,如下所示:

<%@ Register TagPrefix="UC" TagName="Test" Src="~/WebUserControl1.ascx" %>

并像这样使用它:

<UC:Test ID="uc1" runat="server" />

然后,当您运行页面时,您的元素会呈现类似

<div id="uc1_Container" class="dvContainer">
    <table id="Table" class="Tablecs">
        <tr>
            <td>
                <span id="uc1_lblPA">SUN 12/21 05:04</span>
            </td>
            <td>
                <span id="uc1_lblPD">SUN 12/21 19:00</span>
            </td>
        </tr>
        <tr>
            <td>
                <span id="uc1_lblAA">SUN 12/21 05:04</span>
            </td>
            <td>
                <span id="uc1_lblAD">SUN 12/21 19:00</span>
            </td>
        </tr>
    </table>
</div>

查看您的标签和其他元素(具有runat="server"属性的元素)的 ids 是如何改变的,即

lblPA > uc1_lblPA
lblPD > uc1_lblPD

Container > uc1_Container

因此,您必须注意这些更改,因为只有这样您才能使用 jQuery 获取这些元素,因为 jQuery 是一种客户端语言,它在服务器端代码 (runat="server") 执行后执行。

但是,如果您不想查看修改后的 id,您可以执行以下操作

  1. 删除runat="server"属性,并确保您的 id 是唯一的,所有这些
  2. runat="server"属性成为他们的,clientidmode="static"在所有服务器端控件上放置一个属性。并且ID不会改变。
  3. 在您的 jQuery 选择器中使用 ClientId 即,获取这样的元素:$('#"+'<%= lblPA.ClientID %>');

现在,由于您的 ID 是唯一的,因此您无需查找,直接抓取这样的元素:

$('#lblPA').text();

或者,如果您想使用 class 遍历表的所有 td,请Tablecs执行以下操作:

$('.Tablecs tr td').each(function(index, item){
             alert($(item).text());
});
于 2013-04-01T12:53:55.700 回答