我有一个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>
答案 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);
}