繁体   English   中英

通过jQuery在转发器内获取控件ID

[英]getting control ID inside repeater by Jquery

我有要对其发表评论的条目。 所以我创建了一个带有文本框和一个按钮的Repeater。 如何通过Jquery获取特定行的按钮和文本框的ID?

<ASP:REPEATER runat="server">
<ItemTemplate>

...
// Entries: bind data from DB

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<asp:Button ID="Button1" runat="server" />  

</ItemTemplate>
</ASP:REPEATER>

谢谢 。

您的大问题是您的ASP中继器控件将生成类似ct100_repeater_txt1 ID,这将不会帮助您获取与相应的db行相关联的注释

我发现完成此操作的常用方法(我认为这是一种非常标准的方法)是将元素id与数据库中的行ID分配在一起,或者,如果您无法控制ID,则可以创建自定义属性。

我使用的伪代码看起来像这样:(我将尝试使其与语言/平台无关,以便您可以学习该概念,而不仅仅是语言)

<repeater template>
    <textbox id="txt1" dbid='<% eval database id>'/>
    <button id="btn1"  dbid='<% eval database id>'/>
</repeater template>

应该生成如下代码:

<input type="textbox" value="" id="ct100_txt1" dbid="14" />
<input type="button value="submit" id="ct100_btn1" dbid="14" />

<input type="textbox" value="" id="ct100_txt2" dbid="12" />
<input type="button value="submit" id="ct100_btn2" dbid="12" />

<input type="textbox" value="" id="ct100_txt3" dbid="39" />
<input type="button value="submit" id="ct100_btn3" dbid="39" />

然后,可以使用任何您想要的语言从该属性中读取:

Button.Click{
   get attribute dbid of button clicked;
   save text of textbox of same dbid to a database;
}

欢呼声! 希望对你有用

编辑

作为回应,评论“ id在哪里保存dbid ?!” 我假设在一个数据库中:)您应该如何保存它? 有很多方法。 这是您可以尝试使用jquery的一种:

创建一个javascript函数以保存带有参数的答案。 当您将dbid绑定到控件时,将其绑定到onclick函数中并将该ID传递给该函数。 然后,该函数获取dbid匹配的文本并将注释和id保存到数据库。

<textbox dbid="14" />
<input onclick="doStuff(14)" />
<script>
    function doStuff(var id){
        var comment = $('textbox[dbid=id]').value();
        ajax(your url and arguments);
    };
</script>

如果没有更多信息,这是我能为您提供的最好的服务:

对于这样的html(asp.net将如何呈现您的按钮/文本框):

<div id="row1"><button type="button">Click Me!</button><input type="text" name="tb_info" /></div>
<div id="row2"><button type="button">Click Me again!</button><input type="text" name="tb_info" /></div>

您可以使用以下jQuery选择button and textbox for specific rowbutton and textbox for specific row

$("#row1 > button, #row1 > input")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM