zoukankan      html  css  js  c++  java
  • Silverlight DataGrid 实时计算

    在中企业级的应用开发的过程中,我们经常有这种需求:程序能计算的表格数据,尽量让程序去做;这点本身不难,难的是如何尽量提高程序的人性化程度,需要自动计算,即所谓的所见即所得。

    其实这个实现起来也比较简单啦,最主要的就是获取当前选中的行的数据咯。具体代码如下:

    xaml部分:

              <sdk:DataGridTemplateColumn  Header="纳税收入">
                                    <sdk:DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Margin="2" VerticalAlignment="Center"    HorizontalAlignment="Left" Text="{Binding nssr}" Width="120" />
                                        </DataTemplate>
                                    </sdk:DataGridTemplateColumn.CellTemplate>
                                    <sdk:DataGridTemplateColumn.CellEditingTemplate>
                                        <DataTemplate>
                                            <TextBox Height="25" Name="nssr"       Text="{Binding Path=nssr, Mode=TwoWay}" Width="115" TextChanged="nssr_TextChanged" ></TextBox>
                                          
                                        </DataTemplate>
                                    </sdk:DataGridTemplateColumn.CellEditingTemplate>
                                </sdk:DataGridTemplateColumn>
    View Code

    后台cs部分:

            #region 纳税收入值改变
            private void nssr_TextChanged(object sender, TextChangedEventArgs e)
            {
                jxs_gssr = this.dg_sourceGssrxx.SelectedItem as jxs_gssrxxInfo;//获取点击行的信息
    
                TextBox aa = sender as TextBox;
                
                if(isNumber(aa.Text))//校验输入的是否是数字
                {
                Decimal bb = (aa.Text == "" ? 0 : Convert.ToDecimal(aa.Text));
                if (bb != 0)
                {
                    Decimal temp = Convert.ToDecimal(jxs_gssr.bbsr - bb) / bb;
                    jxs_gssr.bbccns = Math.Round(temp, 3);//效果呈现,具体计算在BLL层
                }
    
                }
    
    
            }
    
    
            #endregion
    View Code

    相对比较简单啦,就一次简单的学习记录了。

  • 相关阅读:
    Oracle手工建库
    php如何在某个时间上加一天?一小时? 时间加减
    JavaScript:this是什么?
    ping广播地址会如何(转)
    用CSS3实现文字描边
    vue二十七:vue基础之过滤器
    vue二十六:vue基础之vue生命周期
    vue二十五:vue基础之单个元素过渡和多个元素过渡
    vue二十五:vue基础之slot插槽和具名插槽
    vue二十四:vue基础之动态组件
  • 原文地址:https://www.cnblogs.com/prolovecui/p/4642149.html
Copyright © 2011-2022 走看看