gpt4 book ai didi

c# - 通过复选框选择更新 radgrid 中的页脚

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:55 25 4
gpt4 key购买 nike

我使用 telerik 控件设计了一个 radgrid,它有一些复选框和一个脚注。

 <telerik:RadGrid ID="RadGridCustomers" runat="server"  
AutoGenerateColumns="False" CellSpacing="0" GridLines="None"
Height="300px" ShowFooter="true">
<HeaderTemplate>
<asp:CheckBox ID="chkSelectAll" runat="server"
OnCheckedChanged="ToggleSelectedState" AutoPostBack="true" />
</HeaderTemplate>

<ItemTemplate>
<asp:CheckBox ID="CheckBoxSelectedCustomer" runat="server"
OnCheckedChanged="ToggleRowSelection"/>
</ItemTemplate>
<ItemStyle Width="25px" Wrap="true" />
<HeaderStyle Width="25px" />
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="Customers_Id"
FilterControlAltText="Filter column column" HeaderText="Id"
UniqueName="column" Visible="true">

</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="NominatedLoad"
FilterControlAltText="Filter column1 column" HeaderText="Nominated MW"
UniqueName="NominatedLoad" Aggregate="Sum">
<HeaderStyle Wrap="true" Width="75px" HorizontalAlign="Center" />
<ItemStyle Width="75px" />
</telerik:GridBoundColumn>

所以,正如你所看到的,我有 ID,姓名(没有在这里放代码,认为这是不必要的),提名字段。指定字段有一个聚合属性。默认情况下,我会加载网格并选中网格中的所有复选框。现在,问题是每当用户取消选中复选框时,页脚中的值应该自动更新。所以,我开始写这个事件

   protected void ToggleRowSelection(object sender, EventArgs e)
{
((sender as CheckBox).NamingContainer as GridItem).Selected = (sender as
CheckBox).Checked;
GridFooterItem footer = (GridFooterItem)
RadGridCustomers.MasterTableView.GetItems(GridItemType.Footer)[2];
int totalLoad = Convert.ToInt32(footer["ActualLoad"].Text.Split(':')[1]);
CheckBox chk = FindControl("CheckBoxSelectedCustomer") as CheckBox;
foreach (GridDataItem data in RadGridCustomers.MasterTableView.Items)
{
if (chk.Checked == true)
{
//footer["ActualLoad"].Text = footer.Attributes.Add('Aggregate', }
}

但如果 block 不知道​​如何更新页脚行,我有点被击中了底部。你能告诉我如何完成这个吗?

另外,请告诉我这种情况是需要使用 jquery 还是在 C# 上完成?(我的意思是最好的方法)

最佳答案

是的,这是可能的!你必须把聚合作为自定义!并使用这 2 个函数(它们是示例,请调整您的代码以适应它)

Public void RgDueBalance_CustomAggregate(object sender, GridCustomAggregateEventArgs e)
{
e.Result = 0;
}
protected void CheckBox1_Changed(object sender, EventArgs e)
{
GridFooterItem footerItem = rgDueBalance.MasterTableView.GetItems(GridItemType.Footer)[0] as GridFooterItem;
double pageSum = double.Parse(footerItem["MontMI"].Text.Replace("Total:", ""));
CheckBox checkBox = sender as CheckBox;
GridDataItem dataItem = checkBox.NamingContainer as GridDataItem;
double value = double.Parse(dataItem["MontMI"].Text);

if (checkBox.Checked)
{
pageSum += value;
}
else
{
pageSum -= value;
}
footerItem["MontMI"].Text = "Total: " + pageSum;
}

它的作用是当您选中一个复选框时,它会对值求和,反之则取消选中。希望对你有帮助!

关于c# - 通过复选框选择更新 radgrid 中的页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10231241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com