Asp.net 按原样修改Gridview';它是通过javascript呈现的

Asp.net 按原样修改Gridview';它是通过javascript呈现的,asp.net,javascript,Asp.net,Javascript,我试图在渲染时修改gridview每一行中的一个字段。我需要用客户端Javascript修改它。我对asp.net有些陌生,但我想我应该用clientscriptmanager做点什么 我提出了一个简单的场景,这基本上是我想要做的,以避免陷入细节。如果我能做到以下几点,我就能实现我的目标 假设我有一个姓名和薪水的网格视图。在展示之前,我想让每个人的工资翻一番。显然,我可以在后面的代码中完成这项工作,但由于我正在做的更复杂的实际工作的性质,我需要在javascript中完成这项工作 <as

我试图在渲染时修改gridview每一行中的一个字段。我需要用客户端Javascript修改它。我对asp.net有些陌生,但我想我应该用clientscriptmanager做点什么

我提出了一个简单的场景,这基本上是我想要做的,以避免陷入细节。如果我能做到以下几点,我就能实现我的目标

假设我有一个姓名和薪水的网格视图。在展示之前,我想让每个人的工资翻一番。显然,我可以在后面的代码中完成这项工作,但由于我正在做的更复杂的实际工作的性质,我需要在javascript中完成这项工作

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" 
            onrowdatabound="GridView1_RowDataBound" >
            <Columns>
              <asp:BoundField HeaderText="Full Name" DataField="Name"  ></asp:BoundField>
             <asp:BoundField HeaderText="Salary" DataField="Salary" />
            </Columns>

这可能不是您想要的,但我会在您引用的案例中使用模板字段。或者更好的是,修改从数据存储返回的数据,使其已经计算出该值

<asp:TemplateField HeaderText="Salary">
  <ItemTemplate>
     <%#Eval("Salary") * 2 %>
  </ItemTemplate>
</asp:TemplateField>


有很多原因使您无法使用客户端脚本执行此操作。首先,可以在浏览器上禁用它。此外,您还依赖于客户机来执行更高效、更恰当地在服务器上运行的计算

这肯定不是一个好办法。如果浏览器中禁用了javascript,则无法获取实际数据,这是不可取的

不管怎样,像这样的东西就行了。使用jQuery

$("#GridView1 tr td:nth-child(2)").each ( function(){
    var value = parseInt($(this).text(),10 ) * 2;
    $(this).text(value);
});

gridview将在您可以在javascript中触摸它之前完全呈现。RowDataBound是在渲染之前更改值的最佳位置。