我创建了一个gridview,如下所示:
<asp:GridView ID="Grid1" runat="server" CellPadding="1" ClientIDMode="Static" AutoGenerateColumns="false" ShowHeader="true">
<Columns>
<asp:TemplateField headertext="ColumnA">
<ItemTemplate>
<asp:label id="ColumnA" Text='<%#Eval("ColumnA")%>' runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
如何在javascript中添加点击事件(在标签上)并更改单元格(点击)的值?我已经尝试过使用jquery的各种方法但是它们都没有正常工作,希望你可以帮助我。感谢。
答案 0 :(得分:1)
如何为您的标签设置一些class并在jQuery中应用class selector。然后,您只需访问标签的内容即可生成新值,而无需任何唯一的行ID。
<asp:GridView ID="Grid1" runat="server" // DataSource="<%# DataItems %>"
CellPadding="1" ClientIDMode="Static" AutoGenerateColumns="false" ShowHeader="true">
<Columns>
<asp:TemplateField headertext="ColumnA">
<ItemTemplate>
<asp:label CssClass="ColumnA" Text='<%#Eval("ColumnA")%>' runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script>
$("#Grid1 .ColumnA").click(function () {
var content = $(this).html();
$(this).html(content + " Changed");
});
</script>
如果您有需要,您还可以在data-* Attributes中存储一些额外的(如唯一ID)信息:
<asp:label data-id='<%#Eval("UniqueIdDataForClickEvent")%>' CssClass="ColumnA" Text='We have no actual data' runat="server"/>
...
<script>
$("#Grid1 .ColumnA").click(function () {
var content = $(this).data("id");
$(this).html("We had unique id " + content);
});
</script>