我有一些条目我想对它们进行评论。所以我创建了一个转发器,里面有一个TextBox和一个按钮。如何通过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>谢谢。
发布于 2011-06-17 07:58:50
您的大问题是您的asp转发器控件将生成类似以下ct100_repeater_txt1的is,它不会帮助您获得与其相应的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;
}万分欢呼!希望这对你有用
编辑
作为对评论“do do save the 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>发布于 2011-06-17 07:27:12
在没有更多信息的情况下,这是我能提供的最好的信息:
对于像这样的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 row:
$("#row1 > button, #row1 > input")https://stackoverflow.com/questions/6379576
复制相似问题