【问题标题】:Auto multiply two column in gridview在gridview中自动乘以两列
【发布时间】:2011-03-26 11:06:58
【问题描述】:

嗨,

我需要在 gridview 中计算两个 textboxex 的值,并在第二个文本框中输入值后立即使用 javascript 在第三个文本框中显示结果。

我的文本框字段是:数量和价格 结果应显示在 Total 中。

即(总)价值=数量 * 比率。

我试过这个, 代码隐藏:C#

protected void gvPOItms__RowCreated(Object sender, GridViewRowEventArgs e)
{
    try
    {            
        TextBox txt1 = (TextBox)e.Row.FindControl("txtQty");
        TextBox txt2 = (TextBox)e.Row.FindControl("txtRate");
        TextBox txt3 = (TextBox)e.Row.FindControl("txtValue");

        txt1.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')";
        txt2.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')";
    }
    catch (Exception ex)
    {
        Response.Write(ex);
    }
}

JAVASCRIPT:

<Script type="text/javascript">
 function multiplication(tx1,txt2,txt3)
        {
        //Your logic for multiplication
        var Qty=document.getElementById(txt1).value;
        var Rate=document.getElementById(txt2).value;
        document.getElementById(txt3).value=Qty*Rate;       
        }
    </script> 

标记页:

但是,我无法得到答案,它没有抛出任何错误。

谁能告诉我怎么了?

【问题讨论】:

  • 您可以通过在jsfiddle.net等处提供一个活生生的例子来帮助我们

标签: c# javascript gridview


【解决方案1】:

您应该在乘法之前将字符串更改为 int(因为任何文本框的值都返回字符串):)

试试这个:-

txt1.Attributes["onKeyup"] = "javascript: return multiplication('" +  Convert.ToInt32(txt1.Text) + "','" +  Convert.ToInt32(txt2.Text) + "','" +  Convert.ToInt32(txt3.ClientID) + "')";
txt2.Attributes["onKeyup"] = "javascript: return multiplication('" +  Convert.ToInt32(txt1.Text) + "','" +  Convert.ToInt32(txt2.Text) + "','" +  Convert.ToInt32(txt3.ClientID) + "')";

在脚本中:-

<Script type="text/javascript">
 function multiplication(Qty,Rate,txt3)
    {
    //Your logic for multiplication

    document.getElementById(txt3).value=Qty*Rate;       
    }
</script> 

【讨论】:

  • 嗨,Anukush roy,感谢您的好建议..我发现它工作正常....抱歉,迟到的亲密关系.......
【解决方案2】:

问题在于这些代码行

txt1.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')";
txt2.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')";

改用 Add 方法

txt1.Attributes.Add("onKeyup", "javascript: return multiplication('" +
     txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')");
txt2.Attributes.Add("onKeyup", "javascript: return multiplication('" +
     txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')");

也可以在 javascript 中使用parseInt()

var Qty  = parseInt(document.getElementById(txt1).value);
var Rate = parseInt(document.getElementById(txt2).value);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多