我正在尝试修改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>
答案 0 :(得分:1)
这可能不是你想要的,但我会在你引用的情况下使用模板字段。或者更好的是,修改从数据存储区返回的数据已经计算出值。
<asp:TemplateField HeaderText="Salary">
<ItemTemplate>
<%#Eval("Salary") * 2 %>
</ItemTemplate>
</asp:TemplateField>
有很多原因你不会在客户端脚本编写时这样做。例如,可以在浏览器上禁用它。此外,您依靠客户端执行更高效且在服务器上正确运行的计算。
答案 1 :(得分:1)
可以肯定的是,这不是一个好方法。如果您的浏览器禁用了javascript,那么您将无法获得实际数据,这是不可取的。
无论如何,这样的事情都会做到。使用jQuery
$("#GridView1 tr td:nth-child(2)").each ( function(){
var value = parseInt($(this).text(),10 ) * 2;
$(this).text(value);
});