2011-06-16 54 views
0

我有条目我想评论他们。所以我创建了一个带有TextBox和一个 按钮的Repeater。我如何获得特定行的按钮和文本框的ID由 Jquery?由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> 

谢谢。

+2

你应该发布一些代码。你如何获得按钮/文本框ID?是当用户点击按钮的特定行吗? – 2011-06-16 23:19:55

+1

你的HTML是什么样的?你到目前为止有什么jQuery?给我们看一些代码.... – 2011-06-16 23:21:02

+0

对不起。我编辑了这个问题。 – Roobah 2011-06-16 23:46:12

回答

0

没有更多的信息,这是最好的我可以为您提供:

像这个网站(这是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> 

您可以选择最button and textbox for specific row通过以下的jQuery:

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

行(记录)从数据库绑定。所以,我不知道他们的ID。 – Roobah 2011-06-16 23:40:49

1

你的大问题是,你的ASP Repeater控件会产生这样的IDS这不会帮助你得到与其相应的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匹配的文本,并将注释和标识保存到数据库中。

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

好吧,我明白了。但我在哪里可以保存文本框和按钮的dbid!? – Roobah 2011-06-17 00:31:59

+0

编辑帖子回答你的问题 – 2011-06-17 01:26:40

+0

当然在数据库中:)。我的意思是什么bdid是?它是控制ID吗?如果它是db中的记录编号,我如何将它链接到特定的控件。谢谢 。 – Roobah 2011-06-17 02:52:15