网格中的计算列

时间:2014-05-27 08:50:44

标签: javascript jquery asp.net gridview

我是ASP.Net的新手

我在GridView

中有1-5个下拉列表

使用css

创建禁用= true 的文本框

我需要根据三个下拉菜单的选择来计算总数。

总计算必须是动态的。

请帮忙

2 个答案:

答案 0 :(得分:0)

在我看来,也会在网格中添加一个按钮,以便您可以在该按钮单击的文本框中显示三个下拉列表值的总和。

然后在gridview的rowcommand函数中尝试此代码

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

    GridViewRow gr = (GridViewRow)((Button)e.CommandSource).NamingContainer;
    DropDownList ddl1 = (DropDownList)gr.FindControl("DropDownList1");
    DropDownList ddl2 = (DropDownList)gr.FindControl("DropDownList2");
    DropDownList ddl3 = (DropDownList)gr.FindControl("DropDownList3");

    TextBox txt = (TextBox)gr.FindControl("TextBox1");

    txt.Text = (Convert.ToInt32(ddl1.SelectedItem.Text) + Convert.ToInt32(ddl2.SelectedItem.Text) + Convert.ToInt32(ddl2.SelectedItem.Text)).ToString();

}

希望这会对你有所帮助

答案 1 :(得分:0)

最好的方法是编写javascript函数并分配给每个下拉列表' onchange'传递此下拉对象的事件:

<asp:DropDownList ID="DropDownList1" runat="server" onchange="dropdownChanged(this)">

在js功能中,您可以计算所选值的总和并将其保存到文本框中。这样你就可以避免回发,并且它的工作非常快。

在js中执行此操作的最佳方法是使用jquery。检查jquery文档以了解如何编写特定步骤的代码:

  1. 获取最接近作为参数传递的下拉对象的元素(this)。这将为您提供行对象。

  2. Foreach下拉,您想要计算从下拉列表的值到变量的总和。 如果这3个下拉列表是行中唯一的下拉列表,则可以在行对象上使用getElementsByTagName(&#34; select&#34;)来获取数组,然后在&#39;中计算总和。环。如果您有更多的下拉,请使用jquery按部分ID获得所需的下拉列表。

  3. 使用jquery获取行内的目标文本框(按部分id或按标记类型)并将计算值分配给它&#39; value&#39;属性。