我有个.aspx页面,页面里有个GridView,GridView里面有订价,购买价格,折扣......只有购买价格和折扣是TEXTBOX文本框..我想在输入折扣后算出购买价格并自动刷新购买价格..用JS代码如何写?请教各位前辈哦
怎样取定价的值(之前绑定好了的)

解决方案 »

  1.   

    输入折扣后 触发一个事件js事件(参数)在后台,向前台发送js脚本.
      

  2.   

    通过文本框的运算结果内容替换Gridview里面的内容?那你不如直接用table不用gridview了
      

  3.   

    <script language="javascript" type="text/javascript">
    function DoCal()
    {
    var e = event.srcElement;
    var row = e.parentNode.parentNode;
    var txts = row.all.tags("INPUT");
    if (!txts.length || txts.length < 3)
    return;var q = txts[txts.length-3].value;
    var p = txts[txts.length-2].value;if (isNaN(q) || isNaN(p))
    return;q = parseInt(q);
    p = parseFloat(p);txts[txts.length-1].value = (q * p).toFixed(2);
    }
    </script>
      

  4.   

    首先不是绑定了吗?
    所以就可以取出各项的值了<--这点你一定做到了吧
    绑定后,可以在js中计算出他们的值,这个也能做到,
    但是,如何把前面用js的计算的值导入到后台数据库,貌似不能实现!
    建议,还是用后台处理较好!
      

  5.   

    這個是沒問題的,給你說個思路吧,你可以在定價欄放Label控件绑定定价(假定名字为lblDj),然后在折扣栏的onblur中添加js(假定名字为tbZk),在onblur中可以把折扣栏的textbox的id传过去,由于gridview运行后控件的id之间是有规律可循的,所以通过折扣的id就可以得到定价的id,当然就能得到定价的值了
    例如如果你传过去的id为GridView1__ctl2_tbZk,你会发现定价栏的Label的id会为GridView1__ctl2_lblDj,那么你
    可以用document.getElementById("GridView1__ctl2_lblDj").innerHTML得到定价的值
      

  6.   

    這個是沒問題的,給你說個思路吧,你可以在定價欄放Label控件绑定定价(假定名字为lblDj),然后在折扣栏的onblur中添加js(假定名字为tbZk),在onblur中可以把折扣栏的textbox的id传过去,由于gridview运行后控件的id之间是有规律可循的,所以通过折扣的id就可以得到定价的id,当然就能得到定价的值了 
    例如如果你传过去的id为GridView1__ctl2_tbZk,你会发现定价栏的Label的id会为GridView1__ctl2_lblDj,那么你 
    可以用document.getElementById("GridView1__ctl2_lblDj").innerHTML得到定价的值能写个JS代码我参考一下吗?
      

  7.   

    onblur="javascript:CalValue(this.id,this.value)"
    <script language="javascript">
     function CalValue(strId,strValue)
     {
       var Pre=strId.substr(0,strId.LastIndexOf("_"));//得到前綴,未經驗證,不一定正確(正確應該是GridView1__ctl2_)
       var lbl=document.getElementById(Pre+"lblDj");
       if(lbl!=null)
       {
          var Dj=lbl.innerHTML;//得到定價
       }
       
     }
    </script>
      

  8.   

    onblur="javascript:CalValue(this.id,this.value)" 
    这个是放在那里的啊?
      

  9.   

    我在其中一行写折扣的时候怎样能得到GridView1__ctl2_Lable这个ID呢?
      

  10.   

    放在前臺綁定的textbox控件那邊啊
      

  11.   

     <asp:TemplateField>
                   <HeaderTemplate>折扣</HeaderTemplate>
                   
                   <ItemTemplate>
                      <asp:TextBoxID="tbZk" runat="server" Text='<%# Eval("zk")%>' onblur="javascript:CalValue(this.id,this.value)"></asp:TextBox>
                   </ItemTemplate>
                   </asp:TemplateField>
    CalValue這個函數就是js函數,裡面有兩個參數,一個是當前折扣行id,一個是當前折扣值,然後你可以在裡面再寫一些你想要的東西啊
      

  12.   

    <asp:TemplateField HeaderText="折扣">
                                    <EditItemTemplate>                                   
                                    </EditItemTemplate>
                                    <HeaderStyle BackColor="#EEF5FF" Width="11%" BorderColor="#ADD7E0" BorderWidth="1px" />
                                    <ItemTemplate><ew:NumericBox ID="NumericBox3" onblur="javascript:CalValue(this.id,this.value)"  runat="server"  Width="58px"></ew:NumericBox>
                                    </ItemTemplate>
                                    <ItemStyle BackColor="#EEF5FF"  Width="11%" BorderColor="#ADD7E0" BorderWidth="1px" />
                                </asp:TemplateField>function CalValue(strId,strValue){
    var pre = strId.substr(0,strId.LastIndexOf("_"));
    var goumai = document.getElementById(pre+"NumericBox1"); 
    var zhekou = document.getElementById(pre+"NumericBox3");
    var yuan = document.getElementById(pre+"Label1"); 
      if(yuan != null)
      {
      goumai.innerHTML  = (document.getElementById(Pre+"Label1").innerHTML)*(document.getElementById(Pre+"NumericBox3").innerHTML);
      }
    }