如何用javascript修改gridview单元格值

时间:2015-03-13 18:23:59

标签: javascript c# jquery asp.net gridview

我创建了一个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的各种方法但是它们都没有正常工作,希望你可以帮助我。感谢。

1 个答案:

答案 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>
相关问题