【发布时间】:2019-07-17 14:48:34
【问题描述】:
我对 asp.net 中的转发器对象有疑问。
在 html 和脚本部分,我在下面有这段代码。
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(MyEdit);
function MyEdit() {
jQuery(function($) {
//editables on first profile page
$.fn.editable.defaults.mode = 'inline';
$.fn.editableform.loading = "<div class='editableform-loading'><i class='ace-icon fa fa-spinner fa-spin fa-2x light-blue'></i></div>";
$.fn.editableform.buttons = '<button type="submit" class="btn btn-info editable-submit"><i class="ace-icon fa fa-check"></i></button>' +
'<button type="button" class="btn editable-cancel"><i class="ace-icon fa fa-times"></i></button>'
//editables
//text editable
$('#rptQuestionTitle')
.editable({
type: 'text',
name: 'username'
});
$('#rptQuestionDescription')
.editable({
type: 'text',
name: 'username'
});
});
}
MyEdit();
<asp:Repeater ID="rptQuestionRepeater" runat="server">
<HeaderTemplate>
<table class="table table-bordered">
<tr>
<th style="width: 50px">No</th>
<th style="width: 200px; height: auto">Question</th>
<th style="width: 400px; height: auto">Description</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("Sort")%>
</td>
<td><span class="editable editable-click" runat="server" id="rptQuestionTitle"><%#Eval("Text") %></span></td>
<td><span class="editable editable-click" runat="server" id="rptQuestionDescription"><%#Eval("Description") %></span></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
我正在尝试制作一个可编辑的表格。我必须能够编辑每一行。但正如您可以看到我的脚本代码,我只能将 id 指定为可编辑的。我需要类可编辑。 在 ASP.NET 中继器中,由于中继器,每个元素都有不同的 ID。我的编辑 JS 代码只适用于一行,因为我自己分配了 id,就像在 JS 和中继器中一样。 但是在第二行之后,ID 会自动更改为中继器计数器之类的东西。
所以我真正的问题是,除了在脚本中使用相同的 ID 进行编辑之外,我如何在转发器中编辑我的行,它们将具有不同的 ID。我想我需要使用 foreach() 但不知道该怎么做。
当我输入他们的类“.editable”或者我可以创建另一个类时,我希望我的所有行都可编辑,这并不重要。我想要的只是一个无 ID 的解决方案。
【问题讨论】:
-
您使用的是哪个可编辑库?如果它被正确创建,它应该可以处理任何选择器,所以理论上一个类可以正常工作。它应该遍历所有 Element 实例并分别在每个实例上实例化库。如果它甚至不能做到这一点,那么我建议找到一个更好的表格编辑器库。
-
它没有循环遍历所有元素。它只是在寻找与 id 内部脚本匹配的 id。我想编辑所有元素,无论它们的 ID 是什么。我需要编辑其中具有“可编辑”类的所有跨度。我需要一个免费的解决方案。
-
没错,这就是我要说的。使用类。
-
这就是我要问的。仅仅写 是不够的。我需要为每个跨度(或每个元素,没关系)设置 JS 代码,如果它们被分配 class="editable" 行为与上面的代码相同(行为分配给他们的 id)
标签: javascript jquery html asp.net repeater