FineUI 官方论坛

标题: 提交NumberBox的BUG关于OnTextChanged [打印本页]

作者: ian    时间: 2012-5-5 20:48
标题: 提交NumberBox的BUG关于OnTextChanged
BUG:如果后台给NumberBox的text赋值为 类似 1.30 1.670 这种尾数还有0的数据的时候 则系统会自己触发 OnTextChanged 事件 。
如下代码 大大可以测试下 先选择酱油在选择其他的。。总和的数据就会变了。。
直接贴代码 前台
      <extageManager ID="ageManager1" runat="server" />
      <ext:Form ID="a1" runat="server" >
      <Rows>
      <ext:FormRow runat="server">
      <Items>
       <ext:NumberBox ID ="price" runat="server" Label ="单价" MaxLength="20" AutoPostBack="True" EmptyText="0.00" OnTextChanged="price_TextChanged" Text="0"    ></ext:NumberBox>
  <ext:NumberBox ID ="amount" runat="server" Label ="数量" MaxLength="20" EmptyText="0.00" OnTextChanged="amount_TextChanged" AutoPostBack="True" Text="1"  ></ext:NumberBox>
    <ext:NumberBox ID ="discount" runat="server" Label ="折扣" MaxLength="20" EmptyText="0.00" OnTextChanged="discount_TextChanged" AutoPostBack="True" Text="100"  ></ext:NumberBox>
  <ext:NumberBox ID ="total" runat="server" Label ="总额" MaxLength="20" EmptyText="0.00" ></ext:NumberBox>
      </Items>
      </ext:FormRow>
      <ext:FormRow runat="server">
      <Items>
      <extropDownList ID="d1" runat ="server" Label="商品" OnSelectedIndexChanged="d1_SelectedIndexChanged" AutoPostBack="True" >
      <extistItem  Value="13.10" Text ="酱油"/>
         <extistItem  Value="15.10" Text ="大蒜"/>
            <extistItem  Value="34.30" Text ="酒精"/>
               <extistItem  Value="39.10" Text ="棉花"/>
      </extropDownList>
      
      <extropDownList ID ="d2" runat="server" Label="折扣" OnSelectedIndexChanged="d2_SelectedIndexChanged" AutoPostBack="True" >
          <extistItem  Value="70" Text ="7折"/>
         <extistItem  Value="80" Text ="8折"/>
      </extropDownList>
      </Items>
      </ext:FormRow>
      </Rows>
      </ext:Form>
后台
protected void d1_SelectedIndexChanged(object sender, EventArgs e)
    {
        price.Text = d1.SelectedValue;
    }
    protected void d2_SelectedIndexChanged(object sender, EventArgs e)
    {
        discount.Text = d2.SelectedValue;
    }

    private decimal parse(string s)
    {
        decimal d;
        decimal.TryParse(s, out d);
        return d;
    }

    private void total1()
    {
        total.Text = Convert.ToString(parse(price.Text) * parse(amount.Text) * parse(discount.Text) / 100);
    }

    protected void price_TextChanged(object sender, EventArgs e)
    {
        total1();
    }
    protected void amount_TextChanged(object sender, EventArgs e)
    {
        total1();
    }
    protected void discount_TextChanged(object sender, EventArgs e)
    {
        total1();
    }
作者: ian    时间: 2012-5-5 20:51
当然 只要把数据先转成double 在ToString()就没事了。。
而且float 和int 类型都没问题 只针对numeric类型并且设置了小数位的
作者: ian    时间: 2012-5-5 21:26
DropDownList又发现个BUG 如果设定了NextFocusControl 控件名 在输入的字符的时候按回车 可以忽略ForceSelection=true 直接跳转到设定的控件名内




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4