2015-03-13 93 views
1

我已創建一個GridView如下:如何修改GridView的單元格的值使用javascript

<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> 

我如何添加一個click事件(在標籤上)並更改單元格的值(即點擊)在JavaScript?我已經嘗試過使用jquery的各種方式,但沒有一個能正常工作,希望你能幫助我。謝謝。

+0

你能給你已經試過什麼一些例子,出了什麼問題?您使用了哪些jQuery選擇器? – 2015-03-13 19:13:23

+0

asp.net數據表不會爲每一行生成唯一的標識,所以我不能通過jquery的選擇器來更改這個值,所以你有一些想法如何做到這一點?謝謝 – John 2015-03-15 16:58:08

回答

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> 
+0

這幫助很大!謝謝 – John 2015-03-16 14:40:53

+0

@Engene如何使jQuery所做的更改在C#代碼中可用? – John 2015-03-16 16:28:32

相關問題