<dxwgv:ASPxGridView ID="Grid_Dhlist" runat="server" 
                        AutoGenerateColumns="False" KeyFieldName="id" Width="100%" 
                        onbeforecolumnsortinggrouping="Grid_Dhlist_BeforeColumnSortingGrouping" 
                        onpageindexchanged="Grid_Dhlist_PageIndexChanged" 
                        onrowdeleting="Grid_Dhlist_RowDeleting">
                        <Columns>
                            <dxwgv:GridViewCommandColumn VisibleIndex="0">
                                <DeleteButton Visible="True">
                                </DeleteButton>
                            </dxwgv:GridViewCommandColumn>
                            <dxwgv:GridViewDataTextColumn Caption="序号" FieldName="id" ReadOnly="true" 
                                VisibleIndex="1">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_id" runat="server" ReadOnly="true" 
                                        Text='<%# Eval("id") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="存货编码" FieldName="GoodsCode" 
                                ReadOnly="True" VisibleIndex="2">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_GoodsCode" runat="server" ReadOnly="true" 
                                        Text='<%# Eval("GoodsCode") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="存货名称" FieldName="GoodsName" 
                                ReadOnly="True" VisibleIndex="3">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_GoodsName" runat="server" ReadOnly="true" 
                                        Text='<%# Eval("GoodsName") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="规格型号" FieldName="SizeModel" 
                                ReadOnly="True" VisibleIndex="4">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_SizeModel" runat="server" ReadOnly="true" 
                                        Text='<%# Eval("SizeModel") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="技术参数" FieldName="TechPara" 
                                ReadOnly="True" VisibleIndex="5">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_TechPara" runat="server" ReadOnly="true" 
                                        Text='<%# Eval("TechPara") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="单位" FieldName="Unit" VisibleIndex="6">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_Unit" runat="server" ReadOnly="true" 
                                        Text='<%# Eval("Unit") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="销售合同" FieldName="XshtCode" 
                                VisibleIndex="7">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_XshtCode" runat="server" Text='<%# Eval("XshtCode") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="原币单价" FieldName="YbPrice"  
                                VisibleIndex="8">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_YbPrice" runat="server" style='ime-mode:disabled;' onkeypress="return noNumbers(this,event,true);"
                                      onkeyup="calculateMoney(this)"   Text='<%# Eval("YbPrice") %>'></asp:TextBox>
                                   
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="原币含税单价" FieldName="YbhsPrice" 
                                VisibleIndex="9">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_YbhsPrice" runat="server" style='ime-mode:disabled;' onkeypress="return noNumbers(this,event,true);"
                                    Text='<%# Eval("YbhsPrice") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="原币金额" FieldName="YbJe" 
                                VisibleIndex="10">
                                 <DataItemTemplate>
                                    <asp:TextBox ID="txt_YbJe" runat="server" style='ime-mode:disabled;' onkeypress="return noNumbers(this,event,true);"
                                    Text='<%# Eval("YbJe") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                            <dxwgv:GridViewDataTextColumn Caption="到货数量" FieldName="Count" 
                                VisibleIndex="11">
                                <DataItemTemplate>
                                    <asp:TextBox ID="txt_Count" runat="server" 
                                        onkeypress="return noNumbers(this,event,true);" style="ime-mode:disabled;" 
                                        Text='<%# Eval("Count") %>'></asp:TextBox>
                                </DataItemTemplate>
                            </dxwgv:GridViewDataTextColumn>
                        </Columns>
                        <Settings ShowGroupPanel="false" ShowHorizontalScrollBar="true" />
                        <SettingsBehavior AllowGroup="false" AllowSort="false" AllowFocusedRow="true" />
                        <SettingsText CommandCancel="取消" CommandClearFilter="清空过滤" CommandDelete="删除" 
                            CommandEdit="编辑" CommandNew="新建" CommandSelect="选择" CommandUpdate="更新" 
                            ConfirmDelete="确认删除" />
                    </dxwgv:ASPxGridView>
我想实现的效果是:填写完毕数量和原币单价后,含税单价和原币金额自动计算,即:含税单价=原币单价*税率(默认17%);原币金额=含税单价*数量。
下面是我写的一段js
function calculateMoney(obj) {
        var rowObj = obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
        var objPrice = rowObj.childNodes[7].getElementsByTagName("INPUT")[0];
        var objQty = rowObj.childNodes[10].getElementsByTagName("INPUT")[0];
        var objMoney = rowObj.childNodes[9].getElementsByTagName("INPUT")[0];
        objMoney.value = parseFloat(objPrice.value) * parseFloat(objQty.value);
}
运行以后提示objPrice,objQty,objMoney 都是为null的对象,取不到对应的值。已经郁闷了好久,这个是最终最靠边的方法,可却取不到值,请大家帮帮忙...

解决方案 »

  1.   

    给这些看了也没用把你绑定数据生成的HTML 代码贴出来看看..
      

  2.   

    <table class="dxgvControl" cellspacing="0" cellpadding="0" id="ASPxPageControl1_Grid_Dhlist" border="0" style="width:100%;border-collapse:collapse;border-collapse:separate;">
    <tr>
    <td><div id="ASPxPageControl1_Grid_Dhlist_DXHorzScrollDiv" style="width:1px;overflow:auto;overflow-x:scroll;">
    <table id="ASPxPageControl1_Grid_Dhlist_DXMainTable" class="dxgvTable" cellspacing="0" cellpadding="0" onclick="aspxGVTableClick('ASPxPageControl1_Grid_Dhlist', event);" border="0" style="width:100%;border-collapse:collapse;empty-cells:show;TABLE-LAYOUT:fixed;overflow:hidden;">
    <colgroup>
    <col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col width="100px" /><col />
    </colgroup><tr id="ASPxPageControl1_Grid_Dhlist_DXHeadersRow">
    <td id="ASPxPageControl1_Grid_Dhlist_DXTDcol0" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>#</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol1" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>序号</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol2" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>存货编码</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol3" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>存货名称</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol4" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>规格型号</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol5" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>技术参数</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol6" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>单位</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol7" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>销售合同</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol8" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>原币单价</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol9" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>原币含税单价</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol10" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>原币金额</td>
    </tr>
    </table></td><td id="ASPxPageControl1_Grid_Dhlist_DXTDcol11" class="dxgvHeader" onmousedown="aspxGVHeaderMouseDown('ASPxPageControl1_Grid_Dhlist', this, event);" style="width:100px;border-left-width:0px;border-top-width:0px;"><table cellspacing="0" cellpadding="0" border="0" style="width:100%;border-collapse:collapse;">
    <tr>
    <td>到货数量</td>
    </tr>
    </table></td>
    </tr><tr class="dxgvEmptyDataRow">
    <td class="dxgv" colspan="12" style="border-bottom-width:0px;"><div>
    No data to display
    </div></td>
    </tr>
    </table>数据是后添加的,并不是从数据库取来的,我是想实现单价和数量填写完以后,原币金额和含税单价自动计算的效果
      

  3.   

    看你的源码找到你文本相对应的控件id
    类似
    'ASPxGridView1_cell19_2_txtVerityVoucherNo'
    来做针对的操作。
    cell19_2 9是行2是列,你自己看怎么遍历下就可以了。
    var voucher=document.getElementById('ASPxGridView1_cell19_2_txtVerityVoucherNo');
      

  4.   

    手工处理后端绑定的datatable,增加一列,计算列的统计值,如前面某些字段的乘积
    绑定到前台就可以了
      

  5.   

    我想用脚本实现列的实时计算,当我在grid中输入数量以后,总价能自动根据单价和我填写的数量进行计算并显示
      

  6.   

    应该是你的id取的不对,可以看看生成的html,一般都有规律性的
      

  7.   

     function calculateMoney(txt1,txt2,txtbox)
            {
                txtbox.value=txt1.value*txt2.value;
            }<asp:GridView ID="GridView1" runat="server" onrowdatabound="GridView1_RowDataBound">
        <Columns>
            <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txt_YbPrice" runat="server"></asp:TextBox>
            </ItemTemplate>
            </asp:TemplateField>
              <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txt_Count" runat="server"></asp:TextBox>
            </ItemTemplate>
            </asp:TemplateField>
              <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txt_total" runat="server"></asp:TextBox>
            </ItemTemplate>
            </asp:TemplateField>
        </Columns>
        </asp:GridView> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    TextBox txt_YbPrice = e.Row.FindControl("txt_YbPrice") as TextBox;
                    TextBox txt_Count = e.Row.FindControl("txt_Count") as TextBox;
                    TextBox txt_total = e.Row.FindControl("txt_total") as TextBox;
                    txt_YbPrice.Attributes.Add("onblur", "calculateMoney(" + txt_YbPrice.ClientID + "," + txt_Count.ClientID + "," + txt_total.ClientID + ")");
                    txt_Count.Attributes.Add("onblur", "calculateMoney(" + txt_YbPrice.ClientID + "," + txt_Count.ClientID + "," + txt_total.ClientID + ")");            }
            }