将.Net-Repeater与jquery一起使用

时间:2011-07-18 15:31:57

标签: jquery .net repeater

我有一个中继器(ASP.Net)。

<asp:Repeater ID="rep" runat="server">
<ItemTemplate>
<asp:TextBox runat="server" ID="txt"></asp:TextBox>
<asp:CheckBox runat="server" ID="cb" />
</ItemTemplate>

如果我使用jQuery单击复选框,我想在文本框中编写Text。这是可能的以及如何。

4 个答案:

答案 0 :(得分:4)

我建议只使用CSS类并使用它来识别TextBox:

<asp:Repeater ID="rep" runat="server">
  <ItemTemplate>
    <asp:TextBox runat="server" ID="txt"></asp:TextBox>
    <asp:CheckBox runat="server" ID="cb" CssClass="repCheck" />
  </ItemTemplate>

然后:

$('.repCheck').change(function(){
    // via Andre
    $(this).siblings('input[type="text"]').first().val("clicked");
});

答案 1 :(得分:1)

您必须发布html输出才能获得正常工作的代码,但它是这样的:

$(function(){
    $('#<%=rep.ClientID  %> input[type="checkbox"]').each(function(){
        $(this).change(function(){
            $(this).siblings('input[type="text"]').first().val("clicked");
        });
    });
});

答案 2 :(得分:0)

是的,确实如此。一种可能性是服务器的方法:

在CheckBox的Load Event(在服务器中),您可以执行以下操作:

void checkBox_Load(object sender, EventArgs e)
{
     CheckBox chk = (CheckBox) sender;
     TextBox txt = (TextBox) chk.Parent.FindControl("txt");
     chk.Attributes.Add("onclick",
                          string.Format("$(\"#{0}\").val('{1}');", txt.ClientID, "newValue");
}

编辑:它缺少jQuery选择器中的#。

答案 3 :(得分:0)

使用jQuery,您可以使用ID选择器选择您指定的ID =“txt”的DOM元素。 http://api.jquery.com/id-selector/

然后,您可以更新这些元素的.text()属性。 http://api.jquery.com/text/

这样的事情应该以最简单的方式运作:

$("#txt").text("some new text");