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