私は Telerik ライブラリを初めて使用します。最初のタスクの 1 つは、Telerik RadGrid の数値列の値の合計を取得することです。列は GridClientSelectColumn です。Aggregate="Sum" を設定すると、フッターがその列の合計を読み取ることを理解しています。問題は、選択した行の合計のみが必要なことです。誰かがデモンストレーションを提供できますか。前もって感謝します!
5181 次
1 に答える
1
以下のコード スニペットを確認してください。
注 : 以下のことを datakey の代わりにラベルで行いたい場合は、このリンクを確認してください。
JS コード
<telerik:RadCodeBlock ID="RadCodeBlock" runat="server">
<script type="text/javascript">
function RowSelected(sender, args) {
var grid = $find("<%=RadGrid1.ClientID %>");
var totalAmount = 0;
if (grid) {
var MasterTable = grid.get_masterTableView();
var Rows = MasterTable.get_dataItems();
for (var i = 0; i < Rows.length; i++) {
var row = Rows[i];
if (row.get_selected() == true) {
totalAmount = totalAmount + parseFloat(row.getDataKeyValue("ID"));
}
}
}
if ($("span[id$='myFooter']").length > 0) {
$("span[id$='myFooter']").get(0).innerHTML = "sum is : " + totalAmount;
}
}
</script>
</telerik:RadCodeBlock>
.aspx
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
ShowFooter="true" AllowMultiRowSelection="true">
<MasterTableView ClientDataKeyNames="ID">
<Columns>
<telerik:GridClientSelectColumn UniqueName="columnSelect">
</telerik:GridClientSelectColumn>
<telerik:GridTemplateColumn DataField="ID" HeaderText="ID" UniqueName="ID">
<ItemTemplate>
<asp:Label ID="txtID" runat="server" Text='<%# Eval("ID") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="myFooter" runat="server" Text="sum is : 0"></asp:Label>
</FooterTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<ClientSettings>
<Selecting AllowRowSelect="true" />
<ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowSelected" />
</ClientSettings>
</telerik:RadGrid>
.aspx.cs
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
DateTime dt = DateTime.Now;
dynamic data = new[] {
new { ID = 1, Name ="Name_1", customdate=dt,NO = 11.00},
new { ID = 2, Name = "Name2", customdate=dt,NO = 11.00},
new { ID = 3, Name = "Name3", customdate=dt,NO = 11.00},
new { ID = 4, Name = "Name4", customdate=dt,NO = 11.44},
new { ID = 5, Name = "Name5", customdate=dt,NO = 10.4}
};
RadGrid1.DataSource = data;
}
于 2012-05-24T09:40:54.420 に答える