我正在尝试实施一个数据库中数字为1 - 值的下拉列表。
我可以在下拉列表中显示数据库中的值,但不能将从1开始的数字作为下拉列表中的选项创建。
下面是我的asp代码:
<asp:SqlDataSource
ID="selectSprintLength"
runat="server"
ConnectionString="<%$ ConnectionStrings:scConnection %>"
SelectCommand="SELECT * FROM sc_sprints WHERE scSprintID = @sprint">
<SelectParameters>
<asp:QueryStringParameter QueryStringField="sprint" Name="sprint" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:DropDownList ID="sprintLengthDropDown"
runat="server"
OnSelectedIndexChanged="sprintDropDown_SelectedIndexChanged"
DataSourceID="selectSprintLength"
DataTextField="scSprintTotal"
DataValueField="scSprintTotal"
AutoPostBack="true"
EnableViewState="true" />
这是我的c#代码:
protected void sprintDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
int counter = 0;
int x = Int32.Parse(sprintLengthDropDown.SelectedValue);
do
{
counter++;
}
while (counter < x);
}
任何人都可以请帮助,以便值1 - scSprintTotal是下拉列表中的所有选项。例如scSprintTotal为7,下拉值为1,2,3,4,5,6,7。
提前致谢!
答案 0 :(得分:1)
要使用系列值填充下拉列表,我们可以使用Enumerable.Range(starting_number,range);请参阅教程https://www.dotnetperls.com/enumerable-range
sprintLengthDropDown.DataSource = Enumerable.Range(1, 7);
sprintLengthDropDown.DataBind();
您可以将范围动态化为数据库中的值。
答案 1 :(得分:0)
int items;
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("SELECT * from scSprint",con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Label1.Text = "The total is " + dr["scsprinttotal"].ToString();
items = Convert.ToInt32(dr["scsprinttotal"].ToString());
}
con.Close();
for (int i = 1; i <= items;i++ )
{
DropDownList1.Items.Add(i.ToString());
}
}