【问题标题】:multiplying rows in gridview without page refresh在不刷新页面的情况下在gridview中乘以行
【发布时间】:2015-09-30 12:28:08
【问题描述】:

我的 Web 应用程序有一个网格视图,其中有数量和单价列和总计列。如果我输入数量和单价,那么我想在下一列中自动显示总价。但是对于我当前的编码,它只会在我点击添加按钮重新加载页面后才会显示。当我移动到 Total 列时,我需要自动显示总金额。这是我当前的代码。

<ItemTemplate>
    <asp:TextBox ID="txttotal" runat="server" 
        Text='<%# Convert.ToInt32(Eval("Qty")) * Convert.ToInt32(Eval("Uprice"))%>' 
        AutoPostBack="True">
    </asp:TextBox>
</ItemTemplate>`

【问题讨论】:

  • 请使用代码编辑您的问题,而不是将其放入 cmets。在问题中阅读起来要容易得多。

标签: asp.net


【解决方案1】:

您需要从 gridview rowdatabound 调用一个 javascript 函数,如下所示:

 txtFATObj.Attributes.Add("onkeyup", "Calculate('" + txtFATObj.ClientID + "','" + txtSNFObj.ClientID + "','" + txtNETWTObj.ClientID + "','" + txtTSObj.ClientID + "')");

Calculate()在aspx页面或单独的JS文件中定义。您现在可以根据收到的这些参数进行计算并设置值。

像这样定义RowDataBound,您需要在其中找到您的控件并将捕获的值发送到javascript。实际计算将在javascript结束时进行。

protected void grvCalc_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            TextBox txtFATObj = (TextBox)e.Row.FindControl("txtFAT");
            TextBox txtSNFObj = (TextBox)e.Row.FindControl("txtSNF");
            TextBox txtNETWTObj = (TextBox)e.Row.FindControl("txtNETWT");
            TextBox txtTSObj = (TextBox)e.Row.FindControl("txtTS");

            txtFATObj.Attributes.Add("onfocusout", "Calculate('" + txtFATObj.ClientID + "','" + txtSNFObj.ClientID + "','" + txtNETWTObj.ClientID + "','" + txtTSObj .ClientID + "')");

        }
    }

【讨论】:

  • 先生如何在java中添加计算功能
猜你喜欢
  • 2023-04-01
  • 2017-05-11
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 2019-11-25
相关资源
最近更新 更多