计算gridview中选定的下拉列表

时间:2014-02-13 04:24:24

标签: asp.net gridview drop-down-menu

我有一个gridview,其中包含列中的下拉列表框,例如下拉列表中包含值'A','B' and 'C'。另外,我有student names的专栏。(假设有大约10名学生)。

我想得到数字。选择“A”作为下拉值的学生。

这可能吗?

修改 这是我的下拉列表的代码。我还没有开始验证。

<asp:TemplateField HeaderText="Choose Employer" HeaderStyle-HorizontalAlign="Left" HeaderStyle-Width="15%">
    <ItemTemplate>
        <asp:DropDownList runat="server" ID="cboEmployer" CssClass="textEntry" AutoPostBack="true" OnSelectedIndexChanged="cboEmployer_SelectedIndexChanged" onclick="javascript:shouldsubmit=false;" Width="80%"></asp:DropDownList>
    </ItemTemplate>
</asp:TemplateField>

3 个答案:

答案 0 :(得分:1)

在GridView之后创建一个按钮。在提交点击事件中,您可以访问Gridviews下拉列表值

protected void btnSubmit_Click(object sender , eventArgs e)
{
  int count=0;
  foreach(GridViewRow row in gridViewId.Rows)
  {
    DropDownList ddl = (DropDownList)row.FindControl("cboEmployer");
    string selectedValue = ddl.SelectedValue.ToString();
    if(selectedValue  == "A")
       count++;
  }
  Response.Write("Number of values selected as A : "+ count);
}

答案 1 :(得分:0)

这是我的建议: 如果您在提交表单后解释此项并且下拉值保存在数据库中,那么您始终可以从使用简单计数(*)查询选择该下拉值的学生的名称中提取数据库中的值。

答案 2 :(得分:0)

在您的代码中,我不明白使用onclick="javascript:shouldsubmit=false; 以及为什么你做了AutoPostBack="true"

我认为你应该使用下拉列表作为简单的

使用此

 <asp:DropDownList runat="server" ID="cboEmployer" CssClass="textEntry" Width="80%">  
 </asp:DropDownList>

而不是

 <asp:DropDownList runat="server" ID="cboEmployer" CssClass="textEntry" 
  AutoPostBack="true" OnSelectedIndexChanged="cboEmployer_SelectedIndexChanged" 
  onclick="javascript:shouldsubmit=false;" Width="80%"></asp:DropDownList>

按上述方式进行其他下拉菜单。 在save按钮中进行计数的代码如下:

 protected void btnSave_Click(object sender, eventArgs e)
    {
        int countA = 0, countB = 0, countC = 0;

        foreach (GridViewRow row in gridViewId.Rows)
        {
            DropDownList cboEmployer = (DropDownList)row.FindControl("cboEmployer");

            string selectedValue = cboEmployer.SelectedValue;

            if (selectedValue == "A")
            {
                countA++;
            }
            else if (selectedValue == "B")
            {
                countB++;
            }
            else if (selectedValue == "C")
            {
                countC++;
            }
        }
        //Response.Write("Count A :" + countA + "<br/>" +"Count B :" + countB + "Count C :" + countC);
    }